我正在创建一个特色帖子滑块,它从“特色”类别中获取4页或帖子。我正在尝试使用WP\\U查询,但没有乐趣:(
我的滑块查询是:
$ml_featured = new WP_Query(
array(
\'posts_per_page\' => 4,
\'post_type\' => array(\'page\', \'post\'),
\'category__in\' => 22
)
);
if( $ml_featured->have_posts() ) {
while( have_posts() ) : $ml_featured->the_post();
// looping
endwhile;
}
else {
// no posts
}
fire\\u PHP显示WP\\u查询包含:
WP_Query(
query =
array(
[\'posts_per_page\'] => 4
[\'post_type\'] =>
array(
[0] => \'page\'
[1] => \'post\'
)
[\'category__in\'] => 22
)
query_vars =
array(
[\'posts_per_page\'] => 4
[\'post_type\'] =>
array(
[0] => \'wod\'
[1] => \'attachment\'
)
[\'category__in\'] =>
array(
[0] => 22
)
我正在使用Genesis,以儿童主题为例。为了在主页上显示我的自定义帖子类型“WOD”,我添加了一些功能。php:
add_filter( \'pre_get_posts\', \'ml_wods_home\' );
function ml_wods_home( $query ) {
if ( is_home() && false == $query->query_vars[\'suppress_filters\'] )
$query->set( \'post_type\', array( \'wod\', \'attachment\' ) );
return $query;
}
建议在
Justin Tadlock. 这本身运行良好,但似乎会干扰滑块查询:
请注意,查询[\'post\\u type\']被查询变量[\'post\\u type\']覆盖。此外,当我胡闹时,浏览器经常超时。。。
我发现了Michael Fields had a related issue , 发布了一个解决方案(我想我正在实施),但它对我不起作用,我不理解。。
我错过了什么?!TIA,Tim
最合适的回答,由SO网友:Stephen Harris 整理而成
首先while( have_posts()):
应该是while( $ml_featured->have_posts()):
其次,在你的pre_get_posts
您检查的回调:
false == $query->query_vars[\'suppress_filters\']
但对于每个
WP_Query
查询和任何
get_posts
“superss\\u filters”显式设置为false的查询。如果要检查查询是否为“主”查询(即与全局
$wp_query
), 您可以使用:
$query->is_main_query();
(
see documentation here). 如果
$query
是主查询,否则为false。
This function was introduced in 3.3. 在3.3之前,您可以检查(未测试):
global $wp_the_query;
if($query === $wp_the_query){
//is main query
}else{
// is not main query
}
或者(但最好使用上述方法),改变
main 仅查询:
global $wp_query;
$wp_query->set( \'post_type\', array( \'wod\', \'attachment\' ) );