我有一点代码,每当作者发布新帖子时,都会给我发送一封电子邮件,但我也想让投稿者提醒我处于“待定”状态的帖子。
add_action(\'publish_post\', \'send_admin_email\');
function send_admin_email($post_id){
$to = \'myemail@email.com\';
$subject = \'New Post on The Articist\';
$message = "new post published at: ".get_permalink($post_id);
wp_mail($to, $subject, $message );
}
我是否可以收到电子邮件,以便在等待发帖时通知我?
来自userabuser的第一个解决方案的代码,这似乎并没有实际发送电子邮件(是的,我在functions.php中将其更改为我的实际电子邮件地址)。
add_action( \'transition_post_status\', \'pending_post_status\', 10, 3 );
function pending_post_status( $new_status, $old_status, $post ) {
if ( $new_status === "pending" ) {
function send_pending_email($post_id){
$to = \'myemailaddresshere@mysite.com\';
$subject = \'New Pending Post\';
$message = "new post Pending";
wp_mail($to, $subject, $message );
}
}
}
最合适的回答,由SO网友:Adam 整理而成
根据您的用例,有几种方法可以实现这一点,尽管示例1非常有效,但使用示例2可能更有意义。
示例#1:
每次更新/发布状态为“待定”的帖子时,都会向您发送一封电子邮件。如果状态已为“挂起”,并且用户再次点击“另存为挂起”,则还会向您发送电子邮件。
add_action( \'transition_post_status\', \'pending_post_status\', 10, 3 );
function pending_post_status( $new_status, $old_status, $post ) {
if ( $new_status === "pending" ) {
wp_mail(
//your arguments here...
);
}
}
示例#2:
只有在帖子之前的状态尚未设置为挂起时,当帖子更新或发布为挂起时,才会向您发送电子邮件。
add_action( \'transition_post_status\', \'pending_post_status\', 10, 3 );
function pending_post_status( $new_status, $old_status, $post ) {
if ( $new_status === "pending" && $old_status !== "pending" ) {
wp_mail(
//your arguments here...
);
}
}
选择你的毒药
其他资源:
http://codex.wordpress.org/Post_Status_Transitions