web-dev-qa-db-fra.com

Afficher tous les résultats de la recherche

Est-il possible d'afficher tous les résultats de la recherche sur le search.php? En réalité, il n'affiche que 10 résultats (comme défini dans WordPress settings > general).

2
Andycap

La façon rapide et sale de le faire serait d'utiliser à nouveau query_posts, en doublant le nombre d'appels à la base de données.

<?php if (have_posts()) : ?>
<?php query_posts('showposts=999'); ?>

Il serait préférable d’ajouter ceci à functions.php, en modifiant la requête initiale avant son exécution:

function change_wp_search_size($query) {
    if ( $query->is_search ) // Make sure it is a search page
        $query->query_vars['posts_per_page'] = 10; // Change 10 to the number of posts you would like to show

    return $query; // Return our modified query variables
}
add_filter('pre_get_posts', 'change_wp_search_size'); // Hook our custom function onto the request filter

Si vous souhaitez afficher un nombre illimité de publications, utilisez -1.

6
WouterB

Assez facile: -1 remplace la limite. Il suffit de fusionner la requête par défaut avec vos arguments personnalisés.

global $wp_query;
query_posts( 
    wp_parse_args(
         $wp_query->query
        ,array( 'posts_per_page' => -1 )
    )
);
1
kaiser

Essayez http://wordpress.org/extend/plugins/custom-post-limits/ / Vous pouvez définir des limites/numéros de publication indépendants pour tous types de résultats, c.-à-d. Recherche, catégorie, balise, archives, auteur, paginé, etc., sans avoir besoin de modèles de page ou de boucles personnalisées.

0
markratledge