允许编辑在管理员中查看帖子,但不能执行保存/编辑

时间:2015-08-18 作者:hampusn

在当前的项目中,我需要能够通过比较帖子的语言与用户可以访问的语言来限制对帖子的访问。我相信我能做到这一点。

但是,即使不允许用户编辑帖子,用户也应该能够在管理区域查看帖子。这样做的原因是为了能够使用本地化插件的复制/翻译操作。而且用户可以比较信息或阅读其他语言。

现在的问题是我感兴趣的帽子(edit_post) 用于访问编辑页面和实际保存帖子。

使用其中一个过滤器时map_meta_capuser_has_cap 除了post ID之外,没有传递真正的上下文。因此,我不能真正阻止只保存post,同时允许编辑页面仍然可以访问。

是否有方法允许角色在管理中访问/查看编辑帖子页面,但仍不允许实际的保存操作

我不想通过使用debug_backtrace().

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

怎么样remove_meta_box( $id, $page, $context );? https://codex.wordpress.org/Function_Reference/remove_meta_box

这将删除包含保存按钮的发布元框。。。

    function disable_save()    {
        if( !current_user_can( \'edit_post\' ) )   { // Or whatever check you need to make
            remove_meta_box( \'submitdiv\', \'your-chosen-post-type\', \'side\' );
        }
    } // disable_save
    add_action( \'admin_menu\', \'disable_save\' );

结束

相关推荐

About Wordpress capabilities

我知道WordPress是博客引擎的最佳选择,通过一些插件,如Advance Custom Field,WP可以成为一个很棒的CMS。但它仍然有利于出版商将内容推送给用户。现在我的处境相当严峻。我的朋友想使用WP作为一个引擎,用户可以贡献他们的帖子,其他人可以查看它。是否可以使用WP我可以创建自定义主题(&a);插件可以做到这一点,但当用户在插件上放置很多东西(页面和帖子)时,它对性能有好处吗?