添加操作未回调函数(_A)

时间:2018-12-10 作者:Gonzalo

我正在开发一个插件,但add\\u操作不会调用回调。代码如下:

require plugin_dir_path( __FILE__ ) . \'includes/class-network.php\';

$distro = new Classnetwork();
包括/类网络。php:

class Classnetwork {
    public function __construct() {
        add_action( \'publish_post\', array ($this, \'cdn_capture_data\') );
    }

    public function cdn_capture_data( $post_id, $post ) {
        print_r ($post);            
}
}
没有打印任何内容,也没有错误,只是每次我发布新帖子时都没有任何作用。你知道错误在哪里吗?调用了\\uu构造,但没有调用add\\u操作的回调。

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

我知道您正在从wp admin/Posts/Add New面板添加帖子?如果是,请注意publish\\u post操作已运行,WP正在执行重定向,因此您无法看到任何打印的数据。

此外,add\\u action调用缺少第4个参数,即传递给cdn\\u capture\\u data()的参数数,默认情况下只传递了1个参数,因此在您的情况下,$post始终为null。

正确的代码(实际打印结果)应为

class Classnetwork {
    public function __construct() {
        add_action( \'publish_post\', array ($this, \'cdn_capture_data\'), 10, 2 );
    }

    public function cdn_capture_data( $post_id, $post ) {
        print_r ($post);  
        exit;          
    }
}

相关推荐

wp_list_tables bulk actions

如何在扩展的WP\\U List\\U表中触发批量操作。我一直在将以下批量操作添加到may table的选择框中,但在Apply上不会发生任何事情下面是我如何添加批量操作的function get_bulk_actions() { $actions = array( \'delete\' => \'Delete\', \'parsing\' => \'Parsen\' );