2017-04-19 3 views
0

私はメンバーディレクトリのウェブサイトを持っており、何か助けが必要です。WP代謝産物を管理者のみ編集可能にする

私は、Wordpressのカスタム投稿タイプにリンクされている分類法を持っています。これにより、各投稿に地理的領域を適用することができます。問題は、任意の投稿へのアクセス権がどのメンバーがどの地域の更新アクセス権を持っているかということです。私はリージョン代謝物質を管理者の役割のためだけに編集可能にしたいと思っています。ここで、現在のコードである:

function region() { 

$labels = array(
    'name'      => _x('Regions', 'Taxonomy General Name', 'text_domain'), 
    'singular_name'    => _x('Region', 'Taxonomy Singular Name', 'text_domain'), 
    'menu_name'     => __('Regions', 'text_domain'), 
    'all_items'     => __('All Items', 'text_domain'), 
    'parent_item'    => __('Parent Item', 'text_domain'), 
    'parent_item_colon'   => __('Parent Item:', 'text_domain'), 
    'new_item_name'    => __('New Item Name', 'text_domain'), 
    'add_new_item'    => __('Add New Item', 'text_domain'), 
    'edit_item'     => __('Edit Item', 'text_domain'), 
    'update_item'    => __('Update Item', 'text_domain'), 
    'view_item'     => __('View Item', 'text_domain'), 
    'separate_items_with_commas' => __('Separate items with commas', 'text_domain'), 
    'add_or_remove_items'  => __('Add or remove items', 'text_domain'), 
    'choose_from_most_used'  => __('Choose from the most used', 'text_domain'), 
    'popular_items'    => __('Popular Items', 'text_domain'), 
    'search_items'    => __('Search Items', 'text_domain'), 
    'not_found'     => __('Not Found', 'text_domain'), 
); 
$args = array(
    'labels'      => $labels, 
    'hierarchical'    => true, 
    'public'      => true, 
    'show_ui'     => true, 
    'show_admin_column'   => true, 
    'map_meta_cap'    => false,  
    'show_in_nav_menus'   => true, 
    'show_tagcloud'    => true, 
); 
register_taxonomy('region', array('installer'), $args); 

} add_action( 'のinit'、 '領域'、0);

私は 'show_ui'をfalseに変更しようとしましたが、それも管理者から隠しています。私は単純な解決策が必要であることを知っていますが、私はそれを見つけることはできません。

+0

'show_ui'パラメータをブール変数にして、関数の先頭に' $ show_ui =(current_user_can( 'administrator')?true:false); ' –

答えて

0

ありがとう、私は正しい方向に向いています。私はそのトリックを行うと思われるif/elseステートメントを追加しました。以下を参照してください:

function region() { 

$labels = array(
    'name'      => _x('Regions', 'Taxonomy General Name', 'text_domain'), 
    'singular_name'    => _x('Region', 'Taxonomy Singular Name', 'text_domain'), 
    'menu_name'     => __('Regions', 'text_domain'), 
    'all_items'     => __('All Items', 'text_domain'), 
    'parent_item'    => __('Parent Item', 'text_domain'), 
    'parent_item_colon'   => __('Parent Item:', 'text_domain'), 
    'new_item_name'    => __('New Item Name', 'text_domain'), 
    'add_new_item'    => __('Add New Item', 'text_domain'), 
    'edit_item'     => __('Edit Item', 'text_domain'), 
    'update_item'    => __('Update Item', 'text_domain'), 
    'view_item'     => __('View Item', 'text_domain'), 
    'separate_items_with_commas' => __('Separate items with commas', 'text_domain'), 
    'add_or_remove_items'  => __('Add or remove items', 'text_domain'), 
    'choose_from_most_used'  => __('Choose from the most used', 'text_domain'), 
    'popular_items'    => __('Popular Items', 'text_domain'), 
    'search_items'    => __('Search Items', 'text_domain'), 
    'not_found'     => __('Not Found', 'text_domain'), 
); 
if (current_user_can('administrator')){ 
    $args = array(
    'labels'      => $labels, 
    'hierarchical'    => true, 
    'public'      => true, 
    'show_ui'     => true, 
    'show_admin_column'   => true, 
    'map_meta_cap'    => false,  
    'show_in_nav_menus'   => true, 
    'show_tagcloud'    => true, 
); 
}else{ 
    $args = array(
    'labels'      => $labels, 
    'hierarchical'    => true, 
    'public'      => true, 
    'show_ui'     => false, 
    'show_admin_column'   => true, 
    'map_meta_cap'    => false,  
    'show_in_nav_menus'   => true, 
    'show_tagcloud'    => true, 
); 
} 
register_taxonomy('region', array('installer'), $args); 

} 
add_action('init', 'region', 0); 

次に、管理者と管理者の役割に応じて、 'show_ui_をtrueからfalseに変更しました。もし誰かがこれをやるより簡単な方法を見たら、私はそれを見たいと思うでしょう。

関連する問題