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 !

J’utilise un modèle de portfolio pour organiser les pages de contenu éducatif. Chaque page contient 5 articles, un pour chaque jour de la semaine (du lundi au vendredi). J’aurai différents groupes accédant à différentes pages chaque semaine, mais la plupart des pages seront « anciennes ». Ainsi, lorsque vous les visitez maintenant, vous voyez les 5 jours à la fois.

Je veux qu’ils ne voient que les messages des jours précédents et actuels. Ainsi, en visitant le lundi, vous ne voyez que le message du lundi, même si le lundi au vendredi est publié. En visite le mercredi, vous voyez du lundi au mercredi.

Toutes les pages sont les mêmes, il n’y aura jamais que 5 messages. Cette méthode n’a pas beaucoup de flexibilité, mais ça va. J’inclurai probablement une case à cocher méta pour « activer/désactiver » cette fonctionnalité, mais je n’aurai pas besoin d’en utiliser autant.

Voici un lien vers le template-portfolio.php actuel : 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

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

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