web-dev-qa-db-fra.com

Empêcher le changement de <titre> avec une nouvelle requête_posts ()

Je dois afficher 12 éléments de mon type de message personnalisé sur la page de couverture de mon thème. Cependant, lorsque je le fais, le titre de la page (<title>...</title>) devient Custom Post Type archive - Page Title.

Comme il s’agit de la page de couverture, je souhaite simplement que le titre de la page de couverture, à savoir Page title - page tag line, soit normal. Est-il possible de définir cette variable dans la nouvelle query_posts()? Ou simplement empêcher que le titre de la page change, lors de l'utilisation d'une nouvelle query_posts()?

Cela ne me dérange pas que cela se produise sur les sous-pages, etc., mais sur la page de garde, cela ne devrait pas changer lorsque je filtre les résultats sur post_type.

C'est la requête que j'utilise actuellement:

query_posts( array( 
   'post_type' => 'bwps',
   'posts_per_page' => 12
));
1
Rvervuurt

Vous ne devriez pas utiliser query_posts() du tout. De la documentation :

Remarque: cette fonction remplacera complètement la requête principale et n’est pas destinée à être utilisée par des plugins ou des thèmes. Son approche trop simpliste de la modification de la requête principale peut être problématique et doit être évitée autant que possible. Dans la plupart des cas, il existe de meilleures options, plus performantes, pour modifier la requête principale, par exemple via l’action ‘pre_get_posts’ dans WP_Query.

Si vous souhaitez afficher des publications personnalisées sur votre page d'accueil, vous devez créer un modèle pour la page d'accueil (soit page de garde.php ou un modèle personnalisé . Ensuite, sur ce modèle, recherchez ces publications avec votre propre WP_Query:

$bwps = new WP_Query( array( 
   'post_type' => 'bwps',
   'posts_per_page' => 12
) );

Et parcourez-les avec les méthodes de requête sur $bwps:

if ( $bwps->have_posts() ) :
    while ( $bwps->have_posts() ) : $bwps->the_post();
        the_title();
    endwhile;
endif;

Si vous souhaitez conserver votre page d'accueil affiche définie sur vos derniers messages , et conserver la pagination sur la page d'accueil en remplaçant simplement ces derniers messages avec votre propre type de message, puis voir cette question précédente sur le sujet.

3
Jacob Peattie