web-dev-qa-db-fra.com

le crochet the_posts, quel ensemble de messages?

Je souhaite modifier les résultats de la recherche. Actuellement, j'attache the_posts et vérifie wp_query-> is_search pour déterminer si je regarde la page de résultats de recherche.

Cependant, j'ai remarqué que the_posts est exécuté non seulement sur les résultats de la recherche, mais également sur toute liste d'extraits de la page (telle qu'une liste de nouvelles dans le pied de page).

Comment savoir quel appel the_posts est lequel? Devrais-je supposer que c'est le "premier"? ou y a-t-il un meilleur moyen?

2
John Lee

Je dirais que c'est tout à fait bien de le faire comme vous le faites maintenant, c'est-à-dire

function my_the_posts($posts, $query = false) {
    if( is_search() ){
        // do your thing here
    }
    return $posts;
}
add_filter( 'the_posts', 'my_the_posts' );

Ne vous inquiétez pas pour les extraits dans le pied de page, même s'ils font partie de la page de recherche (le pied de page sera évidemment), ils font partie d'une requête différente et ne passeront donc pas le test is_search().

6
montrealist