Piklist入门教程十一:不同权限或用户角色显示MetaBox和Fields

在功能强大的Web应用中,你想在不同的权限或者不同的用户中显示不同的Meta Box 或Meta Field。例如,一个订单系统中,可以让用户看到某些fields,或者某些fields,只有管理员才能看到。Piklist可以很容易做到这一点。
在本教程,我们可以很灵活的去控制谁要显示的数据。
1.首先,我们先在meta-boxes目录下建一个user-metabox.php

user_metabox

根据Capability 或 Role 显示MetaBox
我们的Post Type用page再注释属性里加入Capability参数

Capability: editor

上面注释参数就能让Metabox只在用户是editor上显示,我们把更改它为’administrator’,刷新page的编辑页这样管理员就能显示MetaBox。

page_metabox
如果想在用户是editor和administrator上显示metabox,我们可以用有edit_pages权限的显示,下面是完整注释属性代码:

<?php
/*
Title: My Pages Meta Box
Post Type: page
Capability: edit_pages
*/

根据Capability 或 Role 显示Meta Fields
我们只需要要在控件的属性加上’capability’=>’editor’如上述一样设置
完整的user-metabox.php代码

<?php
/*
Title: My Pages Meta Box
Post Type: page
Capability: edit_pages
*/

piklist('field', array(
    'type' => 'text'
    ,'scope' => 'post_meta'
    ,'field' => 'demo_text'
    ,'label' => 'Text box'
    ,'description' => 'editor and administrator is show'
    ,'value' => 'Default text'
    ,'capability' => 'edit_pages'
    ,'position' => 'wrap'
));

//下面Meta Fields只能在用户是editor才会显示
piklist('field', array(
    'type' => 'text'
    ,'scope' => 'post_meta'
    ,'field' => 'editor_text'
    ,'label' => 'Text box'
    ,'description' => 'editor is show'
    ,'value' => 'Default text'
    ,'capability' => 'editor'
    ,'position' => 'wrap'
));

效果预览:

user_metafield

更多用户权限详情可以参数WordPress 手册

http://codex.wordpress.org/Roles_and_Capabilities

文章分类 Piklist, 经验分享 标签: ,

发表评论