web-dev-qa-db-fra.com

Ajout d'un type de message personnalisé à la boucle

J'espère que quelqu'un pourra m'aider avec ça. J'ai un type de publication personnalisé ("article") dans mon installation WordPress et j'aimerais afficher ces publications à côté des publications par défaut dans le flux de publication normale.

Ceci est ma boucle actuelle:

<?php
    if ( have_posts() ) {
    while ( have_posts() ) {
        the_post();
        global $more;
        $more = 0;

    //include the post template
    locate_template( array( 'includes/post-template.php' ), true, false );
}

locate_template( array( 'includes/post-pagination.php' ), true, false );

}else {
_e( 'No posts available', 'pexeto' );
}
?>
2
Sergio Hernandez

Vous avez besoin de quelque chose comme ça dans votre fichier functions.php, j'utilise l'action suggérée par Pieter.

function add_custom_post_type_to_query( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'post_type', array('post', 'article') );
    }
}
add_action( 'pre_get_posts', 'add_custom_post_type_to_query' );

Vous pouvez en savoir plus sur le pre_get_posts dans la documentation .

6
Tomás Cot

J'ai fini par utiliser cela et cela a fonctionné comme un charme.

function add_custom_post_type_to_query( $query ) {
  if ( is_home() ) {
    $query->set( 'post_type', array('post', '2nd-post-type', '3rd-post-type') );
  }
}
add_action( 'pre_get_posts', 'add_custom_post_type_to_query' );

Vous pouvez le voir en action sur http://bestmotorcycleroads.com

0
tom