我正在开发一个插件,但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操作的回调。
最合适的回答,由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;
}
}