| ブログトップ | CMS関連 |

pre_get_postsを使う場合は、管理画面にまで反映してしまわないよう注意

WordPressメモ。

サイトの検索にて、post_typeを絞ろうと、functions.phpに

function include_post_type($query) {
	if ($query->is_search()) {
		$query->set('post_type', array('post','xxx','xxx'));
	}
}
add_action( 'pre_get_posts', 'include_post_type' );

と記述したのですが、管理画面の検索にまでこれが反映されてしまいました。

正確には

function include_post_type($query) {
	if (!$query -> is_admin && $query->is_search()) {
		$query->set('post_type', array('post','xxx','xxx'));
	}
}
add_action( 'pre_get_posts', 'include_post_type' );

というように、「!$query -> is_admin」も必要だったみたいですね。

いきなり管理画面の検索がおかしくなったからあせったわ~^^;

 

参考サイト

query_postsを捨てよ、pre_get_postsを使おう【追記あり】【報告あり】 | notnil creation weblog

日々の生活にhappyをプラスする|ハピタス

このエントリーをはてなブックマークに追加

LINEで送る

nandani | 2013年06月18日 | コメント(0) | トラックバック(0) | CMS関連

トラックバック

トラックバックURL

コメントする

※メールアドレスが公開されることはありません。

名前 *
メール*
URL
Copyright(c) 2010 - 2017 ダリの雑記