検索結果の数を表示


13

これまでは、誰かが検索したときに結果の数を取得し、その数を表示するために以下のコードを使用していました。

<?php /* Search Count */ $allsearch =& new WP_Query("s=$s&showposts=-1"); $count = $allsearch->post_count; echo $count . ' '; wp_reset_query(); ?>

しかし、これは有効なコードとは思えません。以下のエラーが表示されます。

非推奨:参照による新規の戻り値の割り当ては非推奨です

誰でも私が検索カウントを取得する適切な方法を提案してください。上記のコードは、条件ステートメント内のテーマのindex.phpファイルの見出しに配置され、ユーザーがどのタイプのページにあるかに基づいて異なる見出しを表示します。


allsearch = new WP_Query廃止予定の通知を避けるため、「&」なし。
gmazzap

回答:


31

検索テンプレート内にいる場合、つまり検索クエリがメインのクエリです。その後$wp_query、追加のクエリを実行せずにグローバルから検索結果を取得できるはずです。

global $wp_query;
echo $wp_query->found_posts.' results found.';

編集1

検索コンテキストからカウントを取得する必要がある場合。両方の手法を組み合わせて、効率的な結果を得ることができます。すべての投稿を取得するわけではありませんが、検索カウントを取得できます。

$allsearch = new WP_Query("s=$s&showposts=0"); 
echo $allsearch ->found_posts.' results found.';

あなたのエラー

発生しているエラーについては、ここにあります

$allsearch =& new WP_Query("s=$s&showposts=-1");

等号の横の「&」を削除して、エラーを取り除きます。このようになります

$allsearch = new WP_Query("s=$s&showposts=-1");

1
わあ、ありがとう。私もこれを試してみましたが、機能しました '<?php / * Search Count * / $ count = $ wp_query-> post_count; echo $ count。''; wp_reset_query(); ?> '
ハリッシュチョウハン

$ allsearch = new WP_Query( "s = $ s&showposts = 0");を破棄します。echo $ allsearch-> found_posts。結果が見つかりました。 '; 合計ではなく現在のページ数のみが表示されます。たとえば、20件の投稿がある場合は10件のみです。
スヤシュジェイン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.