J'ai plusieurs messages standard et des messages d'un type personnalisé. Maintenant, je veux tous les afficher sur ma page d'accueil en utilisant une boucle. Mon problème est qu'il affiche les articles, y compris ceux du type d'article personnalisé, mais pas tous.
Types de messages que j'ai actuellement: 7 messages standard, 15 photos, 5 vidéos, 2 sites Web. Total de 29 messages.
Dans mes paramètres de lecture, j'ai configuré les pages de blogs pour qu'elles affichent au plus 6 messages. Maintenant, quand je vais à la page d'accueil, je peux voir ces 6 articles mélangés à différents types d'articles, mais il n'y a que 2 pages (la 2ème page contient également 6 articles). Sens, il y a seulement moins de 13 messages où il fait, j'ai 29 messages au total. Quand je vais sur website.com/page/3/ je reçois une erreur 404.
J'utilise le dernier framework FoundationPress pour mon thème WordPress et voici mon code
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$loop = new WP_Query(array(
'post_type' => array('post', 'photo', 'video', 'web'),
'posts_per_page' => get_option('posts_per_page'),
'paged' => $paged
));
?>
<?php while ( $loop -> have_posts() ) : $loop -> the_post(); ?>
<?php get_template_part( 'content', get_post_format() ); ?>
<?php endwhile; ?>
Juste pour référence, voici la fonction FoundationPress pour montrer la navigation
$paginate_links = paginate_links( array(
'base' => str_replace( $big, '%#%', html_entity_decode( get_pagenum_link( $big ) ) ),
'current' => max( 1, get_query_var( 'paged' ) ),
'total' => $wp_query->max_num_pages,
'mid_size' => 5,
'prev_next' => true,
'prev_text' => __( '«', 'foundationpress' ),
'next_text' => __( '»', 'foundationpress' ),
'type' => 'list',
) );
Vous n'avez pas besoin d'une requête personnalisée pour inclure des CPT dans les publications de page d'accueil dans des cas normaux. Il suffit d'utiliser pre_get_posts
.
function wpse215208_include_all_cpt( $query ) {
if ( is_home() && $query->is_main_query() ) {
$query->set('post_type', array( 'post', 'photo', 'video', 'web' ) );
}
}
add_action('pre_get_posts', 'wpse215208_include_all_cpt');