我的主页上有一个特殊的查询,可以返回来自自定义分类法的帖子。
我正在尝试应用此筛选器。
add_filter( \'post_limits\', \'my_post_limits\' );
function my_post_limits( $limit ) {
if ( is_home() ) {
return \'LIMIT 0, 3\';
}
return $limit;
}
然而,这也适用于我在页面下方的另一个循环,所以我猜这是不应该全局设置的。我没有太多的后端知识,也不知道如何在自定义查询中应用这样的过滤器。这可能吗?
以下是我的完整查询的外观:
add_filter( \'post_limits\', \'my_post_limits\' );
function my_post_limits( $limit ) {
if ( is_home() ) {
return \'LIMIT 0, 3\';
}
return $limit;
}
$args = array(
\'post_type\' => array(\'post\',\'featured-post\'),
\'tax_query\' => array(
array(
\'taxonomy\' => \'featured\',
\'field\' => \'slug\',
\'terms\' => \'featured-homepage\'
)
)
);
$slider_query = new WP_Query( $args );
if ( $slider_query->have_posts() ):
while ( $slider_query->have_posts() ) :
$slider_query->the_post();
$tip_post=get_post_type();
if (get_post_type()==\'post\') {
$thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), \'bones-thumb-1280\' );
$url = $thumb[\'0\'];
// posts are here
} elseif(get_post_type()==\'featured-post\') {
// custom posts are here
} endwhile; else: endif;
最合适的回答,由SO网友:birgire 整理而成
您应该考虑使用posts_per_page
参数由@Tamil建议。
但一般来说,您也可以删除添加的过滤器。
在您的情况下,您可以在WP_Query()
具有
add_filter( \'post_limits\', \'my_post_limits\' );
$slider_query = new WP_Query( $args )
remove_filter( \'post_limits\', \'my_post_limits\' );
所以它不会影响以后的查询。
您可以在法典中阅读更多信息:http://codex.wordpress.org/Function_Reference/remove_filter