管理ページで記事が検索できない事象というのは、いくつかあると思います。
今回、一例を短くメモします。
投稿が検索できない
記事が増えたある時期、投稿をカテゴリやフリーワード検索しても記事が全くソートされないというトラブルが。
類似記事を検索したり、クイック編集したりが、すごく不便ですね。
原因はfunctions.phpのある記述
原因を調べたところ、思いあたったのはfunctions.phpに記述してある以下のプログラムでした。
function SearchExcludeCategoryFilter($query) { if ($query->is_search) { $query->set('cat','-40,-15'); } return $query; } add_filter('pre_get_posts','SearchExcludeCategoryFilter');
これは、フロントページに検索機能をつけた場合、ある特定のカテゴリは検索しないように設定したプログラムです。
本サイトで「投稿」としてコントロールしているカテゴリは「ブログ」「実績」「ニュース」です。
フロントでは「ブログ」のみを検索対象にしたかったので、「実績」と「ニュース」がヒットしないよう上記で設定しています。
実はこれが問題で、コメントアウトすると無事に検索できました。
フロントだけでなく、functions.phpは菅理ページにも影響していることに注意しないとですね。
フロントでカテゴリ「ブログ」だけを検索する方法
管理ページはいいけど、フロントどうするってことになりますよね。現時点ではそれほど記事も多くないのでいいですが、今後を考えると必要ですよね。やっぱり。
そこで、アナログ的にやってみます。
<form> <input name="s" type="search" /> <input name="cat" type="hidden" value="カテゴリID" /> <input type="submit" value="検索" /> </form>
直接フォームにカテゴリ入れてしまう超単純な方法で乗り切ろうと思います。