这个is_home()
当当前显示的页面为blog posts index. 如果您想针对site front page 相反,您需要使用is_front_page()
:
function wpse83754_filter_pre_get_posts( $query ) {
if ( $query->is_main_query() && is_front_page() ) {
$query->set( \'post_type\', array( \'home_portfolio\' ) );
}
}
add_action( \'pre_get_posts\', \'wpse83754_filter_pre_get_posts\' );
此外,您不必附加
$query->
至呼叫至
is_home()
,
is_front_page()
, 等等。您确实需要这样做
is_main_query()
, 因为您希望确保要筛选的查询特别是主查询,因为任何给定页面都将有多个查询。
因此,如果您想针对特定页面,只需调用is_page( $id )
:
function wpse83754_filter_pre_get_posts( $query ) {
if ( $query->is_main_query() && is_page( $id ) ) {
$query->set( \'post_type\', array( \'home_portfolio\' ) );
}
}
add_action( \'pre_get_posts\', \'wpse83754_filter_pre_get_posts\' );