我有一个问题,我需要在wordpress中实例化一个类,以便在构造函数中我可以使用函数get_post_types并在publish_post钩子之前发生该钩子(我假设它是在publish_CPT钩子周围)。
这是我到目前为止的代码
class Transient_Delete {
/**
* @var array of all the different post types on the site
*/
private $postTypes;
/**
* @var array of wordpress hooks we will have to assemble to delete all possible transients
*/
private $wpHooks;
public static function init() {
$class = __CLASS__;
new $class;
}
public function __construct()
{
$this->postTypes = array_values( get_post_types(array(), 'names', 'and') );
$this->wpHooks = $this->setWpHooks($this->postTypes);
add_action('publish_alert', array($this, 'deleteAlertTest'));
}
private function setWpHooks($postTypes)
{
$hooks = array_map(function($postType) {
return 'publish_' . $postType;
}, $postTypes);
return $hooks;
}
private function deleteAlertTest($post)
{
$postId = $post->ID;
echo 'test';
}
}
add_action( 'wp_loaded', array( 'Transient_Delete', 'init' ));
另一个注意事项是,这是在mu-plugins目录中。
注意:"警告" publish_alert是自定义帖子类型。
答案 0 :(得分:0)
好的,这是我的错,如果我将deleteAlertTest函数更改为public,看起来钩子publish_alert工作正常。任何关于为何将它作为私人功能的想法都有这种效果?它属于同一类。