web-dev-qa-db-fra.com

Modification du nombre de publications par page sur CPT-archive.php, essayé jusqu'à présent 20 à 30 fragments de code

J'ai essayé de changer le nombre de messages affichés sur ma page d'archives de critiques de films CPT et j'ai essayé environ 20 à 30 variantes différentes (et même quelques plugins), mais sans succès. C'est bloqué à 5 messages, même si je sais que j'en ai 10. Il n'y a pas non plus de pagination. update: corrigé ça.

La plupart des variations que j'ai essayées ressemblent à ceci

function wpd_testimonials_query( $query ){
    if( ! is_admin()
        && $query->is_post_type_archive( 'reviews' )
        && $query->is_main_query() ){
            $query->set( 'posts_per_page', 15 );
    }
}
add_action( 'pre_get_posts', 'wpd_testimonials_query' );

et ajouter ceci à functions.php ne change rien.

La configuration jusqu'à présent: thème enfant avec functions.php & post personnalisé type-archive.php dans cette page d'archive, je lance la boucle standard wordpress

if (have_posts()) : while (have_posts()) : the_post(); ?>

Toute aide serait grandement appréciée!

mise à jour 2: modification du nombre de 5 à 15, car il était déconcertant de penser que j'essayais de le changer pour ce à quoi je suis coincé.

1
Philip Aarseth

Utilisation du moniteur de requêtes suggéré par @ Andrew (merci, Andrew!) J'ai trouvé un petit bijou dans mon thème parent qui remplace tout ce qui est défini dans ma fonction.

J'ai découvert que wordpress charge d'abord les thèmes enfants functions.php myfunction{ $query->set( 'posts_per_page', 15 ); }

alors quand il a plus tard chargé

lameparentfunction{ $query->set( 'posts_per_page', 5 ); } Cela a annulé les modifications que j'ai apportées.

1
Philip Aarseth

Votre fonction wpd_testimonials_query limite la requête à 5 posts avec cette ligne:

$query->set( 'posts_per_page', 5 );

Changer ce nombre en 10, 15, 20, ce qui limitera la requête à autant de messages par page.

Si vous supprimez cette ligne et ne définissez pas posts_per_page, la valeur par défaut de 10 sera utilisée. Cette valeur par défaut peut être mise à jour via l'option Les pages de blog affichent au plus à partir de la page Paramètres> Lecture et cette valeur sera appliquée à toutes les pages d'archives du site.

Cela vaut également la peine d'appeler votre fonction avec une priorité plus élevée au cas où plusieurs fonctions seraient exécutées sur le hook pre_get_posts.

add_action( 'pre_get_posts', 'wpd_testimonials_query', 1, 999 );

0
Andrew