是否使某些页面不可由编辑人员编辑?

时间:2015-06-23 作者:Hedge

我的Wordpress页面有几个编辑器。他们需要此权限,因为他们需要被允许更改其他人的帖子/页面。然而,有两个页面,我只希望我,管理员能够编辑。

我如何才能做到这一点?

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

您可以尝试map_meta_cap 过滤器:

/**
 * Uneditable posts/pages for editors
 */
add_filter( \'map_meta_cap\', function ( $caps, $cap, $user_id, $args )  
{
    // Edit to your needs:
    $post_ids = [123, 234, 345, 456]; // Uneditable posts   
    $role     = \'editor\';             // Uneditable by this user role

    // Make given posts uneditable for the above user role:
    if (
            \'edit_post\' === $cap
         && isset( $args[0] )
         && in_array( $args[0], $post_ids ) 
         && current_user_can( $role )
    )
        $caps[] = \'do_not_allow\';

    return $caps;

}, 10, 4 );
使某些页面/帖子不可编辑。

结束

相关推荐

如何在wp-config.php中使用is_admin

我正在尝试为管理员和用户选择不同的数据库,以减少数据库的负载。在wp配置中。当我尝试使用代码时if(is_admin()) { define(\'DB_NAME\', \'wp_db\'); } else { define(\'DB_NAME\', \'other_wp_db\'); } 两个数据库使用相同的用户名和密码。我得到一个错误致命错误:对D:\\xampp\\htdocs\\wordpress\\wp config中未定义函数的调