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をアップグレードする際には気をつけなきゃいけませんです。
タグ: wordpress|制作
月別アーカイブ:2010/8
前のポスト:「佐々木昭一郎というジャンル」を読む
次のポスト:「SSLのセキュリティ警告の話」を読む
