wordpress3.0で検索結果を投稿だけにする(ページを含まない)

Posted: 2010/8/18

お店のクレジットカード対応などリニューアルも一段落して、ざっと全体を見渡していたら、サイドバーに貼ってある「キーワード検索」の検索結果がおかしいことに気付いた。どうやら投稿だけでなくページ(それも一部だけ)も検索対象になっていて。カートプラグインのウィジェットだったので、フォーラムをチェックしたのだけれど、検索機能についてはWPの検索機能をほぼそのまま使っているということで、wordpress codexなどをあたるがよくわからない。気を取りなおして素直に「wordpress 検索対象」なんかでググったところすぐに解決策を発見。さすが先生はスゴいのである。詳しくは以下。

WordPress ? フォーラム ≫ 投稿記事のみの検索
http://ja.forums.wordpress.org/topic/46

これの前にもいろいろ調べたのだけど、WPのデフォルトの検索機能としては「投稿のみ」、あるいは「投稿だけでない」と2種類のあるようで、結局そこはよくわからない。うちの不具合もページすべてではなく一部のページだけだった。それはともかく上記の記事によれば、

WordPress コアをいじっていいなら、wp-includes/query.php の 832 行目を any から post に変更すればいいです。

if ( $this->is_search )
$q['post_type'] = ‘any’; // === HERE
else
$q['post_type'] = ‘post’;

プラグイン等で修正する方法もありそうですが、すぐには思い浮びません。

とのことで、さっそくwp-includes/query.phpを開いて当該場所を検索。するとWP3.0では1651行目にありました。

if ( !isset($q['post_type']) ) {
if ( $this->is_search )
$q['post_type'] = ‘any’;
else
$q['post_type'] = ”;

これの「any」を「post」に変更。確認すると3.0でもずばり解決でした。とりあえずコアファイルということで、WPをアップグレードする際には気をつけなきゃいけませんです。

タグ: 
月別アーカイブ:2010/8

前のポスト:「」を読む
次のポスト:「」を読む

Leave a Comment