如何在单个wp_查询中应用筛选器?

时间:2013-04-13 作者:skxc

我的主页上有一个特殊的查询,可以返回来自自定义分类法的帖子。

我正在尝试应用此筛选器。

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;

2 个回复
最合适的回答,由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

SO网友:Tamil Selvan C

尝试post\\u per\\u页参数

$args = array(
\'post_type\' => array(\'post\',\'featured-post\'),
\'tax_query\' => array(
    array(
        \'taxonomy\' => \'featured\',
        \'field\' => \'slug\',
        \'terms\' => \'featured-homepage\'
    )
),
\'posts_per_page\' => 7
);

结束

相关推荐

Too many actions/filters!

这里是wordpress的新成员。动作/过滤器的概念本身并不难理解。令我不知所措的是大量可用的操作和过滤器。当我阅读教程/指南时,他们会说“只需将此功能添加到wp\\U head操作或after\\U setup\\u主题”。如果没有这些教程,我究竟如何知道将该函数与该操作挂钩?作为一个初学者,我怎么会知道什么是合适的操作?有没有关于如何导航的建议?谢谢