一旦“投稿人”被设置为“待审阅”,就不允许他们编辑自己的帖子。

时间:2015-03-02 作者:Tara

我的问题正是标题中的内容:一旦“投稿人”被设置为“待审核”,我如何禁止他们编辑自己的帖子?我似乎找不到任何关于如何做到这一点的文档。谢谢

1 个回复
SO网友:Saurabh Shukla

您可以通过在保存帖子之前检查帖子作者是否是贡献者以及帖子状态是否为挂起来完成此操作。

保存帖子之前:

add_filter( \'wp_insert_post_data\', \'disallow_edit_pending_3748\', 99, 2 );

function disallow_edit_pending_3748( $post_data, $post_array ){

    if( \'pending\' == $post_data[\'post_status\'] && current_user_can( \'contributor\' ) ){

        // there\'s no other way to do this.
        // Nothing can stop the post from saving and still make sense to the user, except this.
        wp_redirect(add_query_arg( \'message\', 999, get_edit_post_link( $post_array[\'ID\'], \'url\' )));
        exit;   
    }

    return $post_data;
}
add\\u query\\u arg to add message=999是可选的。你可以这么做wp_redirect(get_edit_post_link( $post_arr[\'ID\'], \'url\' ));

但是,添加该额外参数可以显示消息。我正在连接WordPress自己的消息显示。

add_filter( \'post_updated_messages\', \'add_custom_message_3748\' );

function add_custom_message_3748( $messages ){
    $messages[\'post\'][999] = "No, you can\'t do this!";
        return $messages;
}
问题是它总是更新(绿色)类型。您可以通过其他方式获得创意并添加管理通知。

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register