検索とVICUNAと

WordPressのいつのバージョンからか定かではないのですが、検索結果にページが含まれる仕様に変更されていたんですね。でも、僕としてはこれはちょっと困る訳で、そのうちそのうちなどと言いながら中々手を付けずにいた物を、えいやっと片付ける決心をしましたのが、数日前、思いの外苦労しましたので、事の次第をここに細々と書き付ける事にした訳です。

まず、検索結果にページを含めない方法。これは簡単に見つけました。

1
2
3
4
<?php
    global $query_string;
    query_posts($query_string . "&post_type=post");
?>

参考サイトーDAITIFIVE blog

このコードをsearch.phpのループの手前に挿入するだけ。さて、検索してみました。ちゃんとページは検索結果から除外されました、というかこのコードは検索結果を投稿だけに限定するという内容だそうで、とにかく僕の意図した検索結果になった訳です。

が、しかしここでめでたしめでたしとはならない事に気付きまして。

ところでこのサイトではVICUNAというテーマを使わせてもらっています。VICUNA自体についてはよく使われているテーマなのでくどくど説明しませんが、とにかくこのテーマでは検索結果の件数が表示される訳です。で、この検索結果の件数と実際に表示される投稿数が合わない事に相成りました。つまり件数に除外したはずのページが含まれている訳です。

最初は割と軽く考えていまして、検索結果の件数を表示するなんて普通にある事でしょ、なんて思ってたんですが、これが中々見つかりません。しかもこのVICUNAで検索結果の件数を表示する方法が、phpが全然駄目な僕としては理解出来ずに苦労しました。もともとかなりカスタマイズしているのもあって余計に混乱したのもあるのですが。その上VICUNAの配布先のサイトがリニューアル中でフォーラムが見れない、という三重苦な中で何度か検索結果の件数を表示する事自体を諦めかけました。先程もお話したとおりphpが全然駄目な僕としては、こうなると調べる手掛かりが思い付かないんですよね。まあ、でももうちょっとやってみようという事で、色々と調べてやっと見つけました。

1
<?php echo $wp_query->found_posts; ?>

参考サイトーWordPressカスタマイズメモ

これが検索結果の件数を表示するコードです。ここまできたら後はちょこちょこといじって出来上がり、と。しかしここまでが長かったですよ。最初に正しい検索結果の件数が表示された時はしばしぼう然としたほど、長かったです。