我想您需要先处理post请求。你必须这样做,因为古腾堡两次打钩。
function transition_post_status_handler( $new_status, $old_status, $post ) {
if ( defined( \'REST_REQUEST\' ) && REST_REQUEST ) {
send_mail_on_publish( $new_status, $old_status, $post );
set_transient( \'post_status_updater_flag\', \'done\', 10 );
} else {
if ( false === get_transient( \'post_status_updater_flag\' ) )
send_mail_on_publish( $new_status, $old_status, $post );
}
}
add_action( \'transition_post_status\', \'transition_post_status_handler\', 10, 3 );
然后您可以调用该函数来发送电子邮件。在这一点上,我认为你有可用的元数据。
function send_mail_on_publish( $new_status, $old_status, $post ) {
if ( \'publish\' == $new_status && \'immobile\' == get_post_type($post) ) {
// Check if not an autosave
if ( wp_is_post_autosave( $post->ID ) )
return;
// Check if not a revision
if ( wp_is_post_revision( $post->ID ) )
return;
// Send email
}
}