自定义帖子发布后触发电子邮件发送

时间:2014-07-10 作者:user2855835

我设置了一个自定义的帖子类型,以便作为参与者的用户可以创建帖子,但管理员必须批准并发布帖子。

我想在管理员发布此帖子类型,然后向所有投稿者发送一封电子邮件,告知他们有帖子时加入此事件。

我在发布帖子时尝试了一封测试邮件,挂起了“save\\u post”,效果很好,但我收到了五封邮件。函数中没有循环:

add_action( \'save_post\', \'clr_test_email\' );

function clr_test_email($post_id) {

   mail("[email protected]","
   ok hooked into save post","Testing save post trigger".$post_id,"From: [email protected]\\r\\nContent-Type: text/plain;charset=utf-8");

}
所以我不确定“save\\u post”是否是我的最佳选择。

过去有一个“publish\\u post”挂钩,但根据Codex,它已被弃用。

有什么想法吗?

1 个回复
SO网友:Steven Jones

挂接save\\u post时,需要检查它是否为修订版(&U);不是WP自动保存数据。。

在发送电子邮件之前,您需要此代码,以便在自动保存或是后期修订时返回。

if ( defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE ) {
    return;
}
if ( wp_is_post_revision( $post_id ) ) {
    return;
}
修订后版本是本页的第一个示例:http://codex.wordpress.org/Plugin_API/Action_Reference/save_post

结束

相关推荐

为什么PUBLISH_{CUSTOM-POST-TYPE}在更新时触发?

我正在尝试对发布和更新启动两个不同的操作。两者都不应同时开火。问题是publish_pm_task 正在更新时被解雇,并且save_post 永远不会被解雇吗?看到这个有什么问题吗?<?php // Updated task notification add_action( \'save_post\', \'pm_updated_task_notification\' ); // New task notification add_action( \'pub