WordPress : Modèle de portfolio : afficher le nombre de publications en fonction du jour de la semaine ?

Publié par Jean-Michel le

C’est le poste deux pour moi ici, donc mes excuses si je laisse quelque chose de côté ! Je suis aussi assez faible en codage wordpress, mais j’apprends !

I’m using a portfolio template to organizes pages of educational content. Each page has 5 posts, one for each weekday (Mon-Fri). I’ll have different groups accessing different pages each week, but most of the pages will be « old ». So, when visiting them now, you see all 5 days at once.

I want them to only see the previous and current days posts. So, visiting on Monday, you see only Monday’s post, even though Monday-Friday is published. Visiting on Wednesday you see Mon-Wed.

All of the pages are the same, there will only ever be 5 posts. This method doesn’t have much flexibility, but that’s ok. I’ll likely include a meta checkbox to « enable/disable » this functionality, but won’t need to use that much.

Here’s a link to the current template-portfolio.php: https://gist.github.com/4671326

Et voici celui que j’ai essayé de modifier : https://gist.github.com/4661867

Voici le bout de code pertinent :

$days = array(
              'monday' => 1,
              'tuesday' => 2,
              'wednesday' => 3,
              'thursday' => 4,
              'friday' => 5,
              );

$args = array(
              'post_type' => 'portfolio',
              'orderby' => 'menu_order',
              'order' => 'ASC',
              'meta_value' => esc_attr( get_post_meta( $post->ID, 'portsort', true ) ),
              'posts_per_page' => $days[date( 'l', current_time('timestamp') )],
              );

Mes ajouts ne fonctionnent pas. Voici la logique que j’essayais de mettre là-dedans:

Afficher #nombre# de publications en fonction du jour où l’on est. Donc, si la date revient jeudi, affichez simplement 4 messages.

Pour moi, cela semble être facile à faire … mais cela ne fonctionne pas correctement pour une raison quelconque.

ALORS… mes questions :

  1. Est-ce la logique de codage appropriée pour que cela fonctionne correctement ?
  2. Qu’est-ce que j’ai fait de mal dans le code lui-même ?

Merci pour l’aide!

Solution n°1 trouvée

Question plus ancienne mais qui pourrait simplement être un problème de sensibilité à la casse :

$days = array(
          'monday' => 1,
          'tuesday' => 2,
          'wednesday' => 3,
          'thursday' => 4,
          'friday' => 5,
          );

$current_day = strtolower( date( 'l', current_time('timestamp') ) );

$args = array(
          'post_type' => 'portfolio',
          'orderby' => 'menu_order',
          'order' => 'ASC',
          'meta_value' => esc_attr( get_post_meta( $post->ID, 'portsort', true ) ),
          'posts_per_page' => $days[$current_day],
          );
Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *