过滤帖子是如何工作的?

时间:2012-01-02 作者:Radek

我不想在主页上显示正文/post\\u内容为空的帖子。因此,我在函数中添加了以下代码。php。它检测带有空正文的帖子,但仍显示它们。我预计如果返回“”,则不会显示帖子。

我怎样才能remove 是否显示帖子filter the_posts work?代码:

function remove_post_with_empty_body ( $posts ) {

    if (($posts->post_content) == \'\') { 


        echo \'empty\'; //also tried return false; and return null;

        return \'\';
    }
    else {

        echo \'not empty\';
        return $posts;
    }

}
add_action(\'the_post\', \'remove_post_with_empty_body\');

1 个回复
最合适的回答,由SO网友:Bainternet 整理而成

首先,在您使用的代码中the_post 胡克,但你的问题是the_posts 胡克,这是两个不同的东西。

the_posts 在从数据库中选择帖子后立即调用,并将$posts数组传递给函数,因此您应该使用它。

至于the_post 钩子,它(通常)在自己的循环中被激发,改变任何东西(比如重定向)都会很晚,它不是一个过滤器钩子,而是一个动作钩子,这意味着如果你什么都不返回,它只是退出你的函数,而不影响结果。

结束

相关推荐

posts_per_page no limit

我想返回所有帖子query_posts. 我试过设置posts_per_page 非常高的数字,但是query_posts 发疯了,不回任何帖子。无限制查询帖子的正确方法是什么?$args = array( \'post_type\' => \'post\', \'cat\' => \'22,47,67\', \'orderby\' => \'name\', \'order\'