当页面被编辑时通知管理员?

时间:2012-07-31 作者:pam

我发现前一篇帖子在发布帖子或页面时会自动通知管理员:Alert Email when any Post or Page is Changed

很有魅力,谢谢!然而,似乎必须将页面从草稿或挂起更改为发布才能触发操作。当已经发布的页面更新时,是否有修改通知管理员?

谢谢

3 个回复
SO网友:Ian Dunn

您可以注册TheDeadMedic\'s function 向…开火save_post 操作,无论状态是否更改,都会在每次保存帖子时运行。

add_action( \'save_post\', \'__notify_admin_on_publish\', 10, 3 );
然后,在他的函数中注释掉以下几行:

//if ( $new_status != \'publish\' || $old_status == \'publish\' )
        //return;
要防止收到自动保存的电子邮件,请在函数顶部添加以下代码:

global $post;
if( ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) || $post->post_status == \'auto-draft\' )
    return;
以下是完全合并的代码:

<?php
function __notify_admin_on_publish( $new_status, $old_status, $post )
{
    global $post;
    if( ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) || $post->post_status == \'auto-draft\' )
        return;

    $message = \'View it: \' . get_permalink( $post->ID ) . "\\nEdit it: " . get_edit_post_link( $post->ID );
    if ( $post_type = get_post_type_object( $post->post_type ) )    
        wp_mail( get_option( \'admin_email\' ), \'New \' . $post_type->labels->singular_name, $message );
}
add_action( \'save_post\', \'__notify_admin_on_publish\', 10, 3 );

SO网友:Damien

你说得对。。许多通知插件需要更改状态,并且实际上无法跟踪帖子或页面是否有新的“修订”。

最近WPMU就跟踪活动的插件做了一篇长篇大论,您可能会发现它很有用,因为它识别了一些插件。。。

http://wpmu.org/wordpress-activity-log/

SO网友:icc97

@IanDunn\'s answer 应该可以,但我还没有测试过。然而save_post 回调与transition_post_status. 这个WordPress codex save_post page 有自己的保存通知代码:

<?php
function my_project_updated_send_email( $post_id ) {

    // If this is just a revision, don\'t send the email.
    if ( wp_is_post_revision( $post_id ) ) {
        return;
    }

    $post_title = get_the_title( $post_id );
    $post_url = get_permalink( $post_id );
    $subject = \'A post has been updated\';

    $message = "A post has been updated on your website:\\n\\n";
    $message .= $post_title . ": " . $post_url;

    // Send email to admin.
    wp_mail( \'[email protected]\', $subject, $message );
}
add_action( \'save_post\', \'my_project_updated_send_email\' ); 

结束

相关推荐

META_KEY和META_VALUE不使用Get_Pages和自定义分类

我正在尝试对页面使用自定义分类法。基本上,页面具有“相关性”分类法,描述页面与谁相关。这些页面是根据网站所在学区的部门结构在层次结构中创建的。假设我在校友页面,我想列出所有与教育服务相关的子页面,比如如何获取成绩单。我试过以下两种方法<?php $pages = get_pages( array( \'child_of\' => \'65\',\'hierarchical\' => 0, \'meta_key\' => \'relevance\', \'meta_va