WordPressの検索にて特定のカテゴリで絞り込んだ時、検索キーワードが空(空欄)の場合のテンプレートを変更する

WordPressの検索で、特定のカテゴリを対象に絞り込む場合は下記のコードを記述します。

1
<input type="hidden" value="{カテゴリID}" name="cat" />

これは検索して頂くとたくさん記事がでてくると思いますのでこれ以上は割愛させて頂きますが、
この場合、
もし検索キーワードが空(空欄)の状態で検索ボタンが押された場合のURLは、

http://example.com/?s=&cat={カテゴリID}

となり、
テンプレートは category.php が呼び出されてしまいます。

そこで category.php ではなく、
通常の検索結果テンプレートの search.php が呼び出されるよう変更してみたいと思います。

方法は下記コードを functions.php に追記するだけです。

1
2
3
4
5
6
7
function search_no_keywords() {
	if (isset($_GET['s']) && empty($_GET['s'])) {
		include(TEMPLATEPATH . '/search.php');
		exit;
	}
}
add_action('template_redirect', 'search_no_keywords');

これで search.php ひとつで統一できますね!

 

WordPress:3.4.1
参考サイト:http://ja.forums.wordpress.org/topic/2703

  • LINEで送る
  • このエントリーをはてなブックマークに追加