更新POST时检测元值更改(POST_UPDATED)

时间:2016-09-04 作者:markb

在我的主题中,我想创建一个函数,当元盒值发生更改时,会通知作者。

实际上,我有一个自定义元盒,它循环遍历特定级别的用户角色(自定义用户角色),其中<option value="<the user\'s ID>"

通过使用以下代码更改作者,我可以做到这一点:

function check_values($post_ID, $post_after, $post_before){
    if( $post_after->post_author !== $post_before->post_author ) {
        $author = $post_after->post_author; /* Post author ID. */
         $name = get_the_author_meta( \'display_name\', $author );
         $email = get_the_author_meta( \'user_email\', $author );

         $title = $post_after->post_title;
         $permalink = get_permalink( $ID );
         $edit = get_edit_post_link( $ID, \'\' );
         $to[] = sprintf( \'%s <%s>\', $name, $email );
         $subject = sprintf( \'Published: %s\', $title );
         $message = sprintf (\'Congratulations, %s! Your article “%s” has been published.\' . "\\n\\n", $name, $title );
         $message .= sprintf( \'View: %s\', $permalink );
         $headers[] = \'\';
         wp_mail( $to, $subject, $message, $headers );
    }
}
add_action( \'post_updated\', \'check_values\', 10, 3 );
我尝试添加get_post_meta( get_the_ID(), \'key_1\', true ); 但在抄本中查找post_updated 我不知道是否可以打电话$post_before->$meta_key$post_after->$meta_key

有没有办法做到这一点?还是纯粹为了内在价值?

1 个回复
最合适的回答,由SO网友:markb 整理而成

就像@SamuelElh comment,我就是这样解决的:

add_action(\'updated_post_meta\', \'check_meta_change\', 0, 4);
function check_meta_change($meta_id, $post_id, $meta_key, $meta_value) {
    if( \'<ENTER YOUR META KEY>\' == $meta_key ) {
        // do stuff
    }
}

相关推荐

在metabox中使用wp_EDITOR tinyMCE导致离开页面时出现表单警告

在自定义帖子类型元框中使用tinyMCE作为wp\\u编辑器,在我尝试提交或想要更改位置时创建警报我没有使用Quicktags这样的行为,但由于TinyMCE更容易使用,我想使用它。我知道在metabox中使用tinymce可能会导致问题,因为它不能在dom中移动,但这不是问题所在。我还使用了wordpress codex中推荐的挂钩、“edit\\u page\\u form”、“edit\\u form\\u advanced”和“dbx\\u post\\u sidebar”,但它并没有解决我的问题