web-dev-qa-db-fra.com

Comment puis-je afficher 1 article en vedette dans un élément stylé, et les suivants ci-dessous différemment

Je cherche des idées, des idées et/ou des conseils sur la meilleure façon d’y parvenir:

En gros, je veux avoir 1 article "en vedette" dans un div de style différent, puis afficher les 3 suivants en dessous.

J'utilise des types de publication personnalisés, de sorte que la fonctionnalité intégrée des post-collants ne fonctionne pas et que je préfère ne pas utiliser de plug-in ...

Voici une capture d'écran de ce que j'essaie d'accomplir:
enter image description here

Je n'avais pas déjà fait cela dans WordPress, donc je ne sais pas trop par où commencer. Je suppose que je devrais créer une catégorie ou une balise appelée "en vedette" pour déclencher les publications qui s'afficheront en haut. Mais alors, comment l'obtenir pour qu'il ne s'affiche pas dans le fil normal?
J'imagine que je peux probablement refuser la balise ou la catégorie "en vedette", mais ce processus semble fastidieux (pour le client de décocher les anciennes publications en vedette pour qu'il apparaisse ensuite dans le fil régulier) ).

1
ByteMyPixel

Une façon d'y parvenir est d'établir deux requêtes/boucles, une qui gère le message en vedette et l'autre qui gère tous les autres messages (à l'exception du message en vedette).

Comment pouvez-vous distinguer ce que IS et ce qui ne doit pas être une publication sélectionnée peuvent être gérés par une catégorie d'espace réservé spécial ou en utilisant un champ personnalisé , ce dernier étant plus approprié que d'encombrer vos listes de catégories avec des catégories d'espace réservé qui n'ont pas de valeur réelle.

Supposons donc que pour les publications que vous souhaitez inclure , vous affectiez un champ personnalisé avec un meta_key de featured_post et une méta_value. de 1.

Dans votre fichier de modèle, vous feriez quelque chose de similaire à ceci;

$args = array(
   'posts_per_page' => 1,
   'post_type' => 'your_post_type',
   'order' => 'DESC',  
   'meta_query' => array( 
      array(
         'key' => 'featured_post', 
         'value' => '1',
      )
   )
);


$first_query = new WP_Query( $args );
if ( $first_query->have_posts() ):
   while( $first_query->have_posts() ) : $first_query->the_post();

        echo '<div class="featured_post">';

            //your desired output here....      

        echo '</div>';

   endwhile;
endif;
wp_reset_postdata();


$args = array(
   'posts_per_page' => 9,
   'post_type' => 'your_post_type',
   'meta_query' => array( 
      array(
         'key' => 'featured_post', 
         'value' => '1',
         'compare' => 'NOT LIKE' //or NOT or != should suffice
      )
   )
);


$second_query = new WP_Query( $args );
if ( $second_query->have_posts() ):
   while( $second_query->have_posts() ) : $second_query->the_post();

        echo '<div class="regular_posts">';

            //your desired output here....      

        echo '</div>';

   endwhile;
endif;
wp_reset_postdata();

Quelques questions que vous pourriez avoir ...

Q: Que se passe-t-il dans le cas où j'attribue (dans le temps) plus d'une publication telle qu'elle apparaît à l'aide de la clé featured_post et de la valeur 1 sans oublier de modifier les publications précédemment présentées?

Dans ce cas, les paramètres; 'order' => 'DESC' affiché dans la première requête qui contrôle l’affichage de votre publication sélectionnée indiquera le dernier appariement de la clé/valeur méta de la publication en fonction de DATE par ordre chronologique de la date de publication la plus récente à la plus ancienne.

Q: ... mais que se passe-t-il si je souhaite afficher une publication sélectionnée à partir d'une date aléatoire et qu'une publication avec une date plus récente est déjà affectée à la paire de publications meta key/value?

Dans ce cas, vous devez vous rappeler de supprimer la paire post meta key/value de toute publication en vedette plus récente par date, de manière à ce qu'une publication plus ancienne comportant la paire post meta key/value puisse prendre la place la plus prioritaire.

Q: Existe-t-il d'autres moyens de procéder?

Bien sûr! En fonction de vos besoins, nous pouvons attribuer aux publications en vedette pour la première requête des publications qui facilitent potentiellement la gestion des modifications. Cela peut inclure l'utilisation de méta-boîtes construites sur mesure qui vous montre la publication sélectionnée actuellement associée à ce type de publication et offre un moyen de modifier la publication sélectionnée de manière globale, même si vous vous trouvez dans l'écran d'édition. Si vos exigences dépassent la solution ci-dessus, nous pouvons l'examiner de plus près.


Quelques ressources utiles du Codex:

0
userabuser