我正在编写一个插件,它只是在发布新帖子时向订阅者发送电子邮件(因此当它处于待处理、更新或草稿等状态时不应发送任何电子邮件)
在插件定义中,我有:
add_action('plugins_loaded', 'setup_plugin_actions');
function setup_plugin_actions(){
if(has_action('new_to_publish')){
$simple_email_subscriber = new email_subscriber();
add_action('new_to_publish', $simple_email_subscriber->email_subscribers());
}
}
And in my email_subscribers method I have:
class email_subscriber(){
function email_subscribers(){
//get post information
$post = get_post($post_id);
$post = get_post( $post_id );
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return false;
if(wp_is_post_revision($post->ID) || wp_is_post_autosave($post->ID)) return;
//email code
......
}
}
一个非常简单的代码,它只是试图向publish_post方法添加一个动作监听器。
但是,由于 publish_post 确实经常触发,所以每当我进行更新、新发布,或者即使我只是停留在 wordpress 页面上并且它会自动更新时,我都会收到 8 封电子邮件。
我试图找到一些只有在真正发布新帖子时才会发生的回调:new_to_post
根本不起作用。
有人能帮我吗?
干杯菲尔