Wordpress:如何在Class中启动add_filter

时间:2017-07-26 09:16:15

标签: php wordpress

抱歉没有明确的标题。

我正在开发一个插件,我想在自定义帖子中添加其他列(尝试按照本教程:https://ryanbenhase.com/how-to-add-custom-columns-to-the-all-posts-screen-or-your-custom-post-type-in-wordpress/)。

在Admin类中,我在__construct()

中有这个
public function __construct() {
     $this->perform_filter_hooked_action();
}

 /**
     * Perform all hooks for filters
     * 
     * @since 1.4 
     */
    private function perform_filter_hooked_action() {

        echo 'perform_filter_hooked_action called';
        add_filter('manage_custom_posts_columns' , array ( $this , 'add_columns_to_summary_custom_post'));

    }

    /**
     * 
     * Filter for add columns to summary custom post.
     * 
     * Callback from perform_filter_hooked_action
     * 
     * @since 1.4
     */
    public function add_columns_to_summary_custom_post( $columns ) {

        echo 'add_columns_to_summary_custom_post called';

    }

我只在屏幕上显示第一个echo(perform_filter_hooked_action被调用),但不是第二个(在“add_columns_to_summary_custom_post”中调用了另一个)。

我哪里错了?

非常感谢

1 个答案:

答案 0 :(得分:3)

使用过滤器时,需要返回一个值而不是回显它。也许这会导致这个问题。

有关add_filter()功能的文档:

  

稍后应用过滤器时,将按顺序运行每个绑定回调   优先级,并有机会通过返回修改值   一个新的价值。