pre_get_posts
フィルターでフックかけて、コールバックの中で、is_main_query()
メソッド使ってチェック。後はオブジェクトのプロパティを弄ればOK。
1 2 3 4 5 6 7 8 9 10 11 12 |
add_action( 'pre_get_posts', array( $this, 'checkQuery' ) ); } public function checkQuery( WP_Query $oWPQuery ) { if ( ! $oWPQuery->is_main_query() ) { return; } // ここでクエリを編集 $oWPQuery->query_vars[ 'post_parent__in' ] = array( 0 ); |
Postscripts
これ、管理画面でも適用されちゃうので、
is_admin()
などのチェックも加えたほうが良い。