まだ1年にもならないこのblogですが自分でも「○○に関する記事書いたっけ?」と思ったり、「あーあのやり方どうするんだっけ。。たしかblogに書いたような」という時に自分の記事を検索することが多いです。
検索したときに結果が多すぎると探すのが大変なので、さらにキーワードを追加したりしますがそもそも 結果が多すぎるかどうか を判断するのがちょっと面倒だったので、解決してみました。
twentyfourteenでは検索した結果がどのように表示されているのか?
私が使っているテーマ(親)はtwentyfourteenです。これで windows という単語を検索してみます。
検索結果はこのように表示されます。全部で何件該当したかとか、何ページにわたってるのかとかはこの表示では分かりません。
スクロールして下の方に行くと2ページあることがわかります。
では検索結果が多すぎたので windows ファイル で検索してみます。
検索結果はキーワードが追加されただけで何も変わりません(^_^;。少なくなっているはずなんですが-、
と、下の方にスクロールしていくとページングしていないので あー少なくなったんだな ということだけはわかります。
うむ。。。
全部で何件検索結果があったか、全部で何ページになったかを表示するようにする
私はノートパソコンを主に使っているので、「できるだけ上の方に情報があるといいなぁ」と思います。ということで今「検索結果: windows ファイル」のように表示されている行に、全部で何件あるかと全部で何ページになるかを表示しようと思います。
使っている子テーマに、twentyfourteenから、search.phpをコピーします。
この「検索結果: windows ファイル」を表示してるあたりが、
<header class="page-header"> <h1 class="page-title"><?php printf( __( 'Search Results for: %s', 'twentyfourteen' ), get_search_query() ); ?></h1> </header><!-- .page-header -->
17行目あたりのこの h1 で囲まれたところのようです。ここに件数とページ数を追加したいと思います。
で、件数とページ数なのですが、このページを見たらどうすればいいかわかりました。
http://wpdocs.sourceforge.jp/関数リファレンス/WP_Query
このページの、 メソッドとプロパティ というところに必要なプロパティが書いてあります。
$found_posts
現在のクエリ変数に一致する投稿の合計数。
$max_num_pages
ページの合計数。$found_posts を $posts_per_page で割った結果。
$found_posts が検索結果全部で何件なのかという数値が入ってるものです。$max_num_pages が全部で何ページかという数値がはいってるようです。
ということまで分かりました。これを子テーマにコピーした先ほどの h1 あたりに書けばできそうです。
これを表示するには
<?php echo $found_posts;?>
ではなく、オブジェクトのプロパティなのでこの場合は、
<?php echo $wp_query->found_posts;?>
と書きます。
実際には 「検索結果: キーワード( xx件/xxページ)」 のように表示したいと思いますので、先ほどコピーした子テーマのsearch.phpを
<h1 class="page-title"><?php printf( __( 'Search Results for: %s', 'twentyfourteen' ), get_search_query() ); ?> <?php if ($wp_query->found_posts > 0){ echo '('.$wp_query->found_posts.' 件 / '.$wp_query->max_num_pages.' ページ)'; } ?> </h1>
このように修正してみました。if文を入れたのは検索結果が0件だったときは、今追加した件数とかページ数の表示部分を飛ばしたかったからです。
修正した検索結果を見てみる
この状態でさっきと同じ検索をしてみます。
windows という単語を検索してみます。
検索結果に 全部で17件あり、2ページにわたっている ということがわかるように表示されました(^^)/。これで「あー結果が多すぎるから単語を追加しよう」という判断がスグにできます。
windows ファイル で検索してみます。
検索結果に 全部で13件あり、1ページで終わっている ということが表示されました。
まとめ:件数などはアーカイブページとかでも表示するといいかも
件数が何件あるかとかは他のアーカイブページなどの一覧画面でも出ていると便利かもしれません。必要に感じたらそれらも修正してみようかなと思いました。
また、今回参照した http://wpdocs.sourceforge.jp/関数リファレンス/WP_Query ページに書いてある他のプロパティには、他にも色々使えそうなものがたくさんあったので試してみたいと思います。
コメント