web-dev-qa-db-ja.com

すべての検索結果を表示する

すべての検索結果をsearch.phpに表示する方法はありますか?実際には10個の結果しか表示されていません(WordPress settings > generalで設定)。

2
Andycap

すばやく手間のかかる方法は、query_postsをもう一度使用してデータベース呼び出しの数を2倍にすることです。

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

実行前に元のクエリを変更して、これをfunctions.phpに追加することをお勧めします。

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

無制限の投稿数を表示したい場合は、-1を使用してください。

6
WouterB

非常に簡単:-1は制限を上書きします。デフォルトのクエリをあなたのカスタム引数とマージするだけです。

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

試してみてください http://wordpress.org/extend/plugins/custom-post-limits/ 検索、カテゴリ、タグ、アーカイブ、作成者、ページングなど、あらゆる種類の結果に対して独自の投稿制限/番号を設定できます。ページテンプレートやカスタムループを必要とせずに。

0
markratledge