web-dev-qa-db-fra.com

Comment faire plusieurs sections dans la maison tirant des postes catégorie sage?

Cette question peut paraître stupide à tout le monde ou novice, mais je travaille sur un thème. Ce sera essentiellement un thème de publication de nouvelles.

À l'heure actuelle, tous les articles de ma page d'accueil s'affichent l'un après l'autre, comme un thème WordPress habituel.

Aucun codage supplémentaire n'a été implémenté sur le thème.

Mais je veux faire différentes sections sur la page d'accueil et nommer chaque section comme son

titre de la catégorie et en tirant les articles de cette catégorie et les afficher dans cette section.

Comme d'autres thèmes liés à l'actualité, ils créent des blocs dans leur page d'accueil et affichent des articles tels que "Actualités", "En ce moment même", etc.

J'espère que vous avez compris ce que je dis.

J'ai lu sur les types de messages personnalisés et les messages wp_query, mais je n'ai pas le code exactement ce que je veux pour cela.

Toute aide sera très appréciée

Gratuitement

1
Sadi Mahmud

Vous pouvez exécuter une boucle foreach dans toutes vos catégories, puis lancer une requête pour connaître les dernières publications de chaque catégorie. Pour ce faire, définissez votre page d'accueil sur une page statique, puis placez-la dans un modèle personnalisé. Ceci est juste un exemple de base:

$categories = get_the_categories();
    foreach ( $categories as $cat ) {

    $exclude = isset( $GLOBALS['current_id'] ) ? $GLOBALS['current_id'] : null;
    $args = array(
         'cat' => $cat->term_id,
         'posts_per_page' => 4,
         'post__not_in' => array( $exclude ),
         'no_found_rows' => true,
          );

     echo '<h3>'. $cat->name . '</h3>';
     $home_q = new WP_Query( $args );
     while ( $home_q->have_posts() ) : $home_q->the_post();
     $GLOBALS['current_id'] = get_the_ID();

     // Do loop stuff here......

     endwhile; wp_reset_postdata();

    }

Le $GLOBALS['current_id'] contiendra un tableau d'identifiants de publication à utiliser dans chaque requête supplémentaire afin d'éviter qu'une publication n'apparaisse plus d'une fois si elle se trouve dans plusieurs catégories. Si vous définissez 'no_found_rows` sur true, la requête sera moins lourde en ne récupérant pas tous les articles pour la pagination et tout le reste.

0
Chris_O