WP カスタム投稿メニューを管理者以外に見せたくない
例えばこのブログのように会社のブログでありながら、他の社員の方々には簡単な投稿なんてさせないために、自分だけのカスタム投稿をメニューにひっそりとしのばせ、自分にしか見せないようにする時などに使います(嘘です。そんなことしていません)
管理者がいて、多数のユーザーが存在するWPで、管理者のみ特別枠に「サーバーメンテのお知らせ」とか出すためにカスタム投稿を使用していたりして、そのメニューを他のユーザーには非表示にしたい時などに使います
function.phpにて操作
カスタム投稿設定時に、権限も同時に設定♪
function event_custom_post_type() {
$labels = array(
‘name’ => ‘コストコ情報’,
‘singular_name’ => ‘コストコ情報’,
‘add_new_item’ => ‘コストコ情報を追加’,
‘add_new’ => ‘新規追加’,
‘new_item’ => ‘コストコ情報’,
‘view_item’ => ‘ページを表示する’,
‘not_found’ => ‘見つかりませんでした’,
‘not_found_in_trash’ => ‘ゴミ箱にはありません。’,
‘search_items’ => ‘検索’,
);
$args = array(
‘labels’ => $labels,
‘public’ => true,
‘show_ui’ => true,
‘query_var’ => true,
‘hierarchical’ => false,
‘menu_position’ => 5,
‘rewrite’ => array(‘slug’ => ‘parmarink’),
‘has_archive’ => true,
‘supports’ => array(‘title’,’editor’),
‘capability_type’ => array( ‘custco’, ‘event’), //権限関係
‘map_meta_cap’=> true //権限関係
);
register_post_type(‘event’, $args);
}
add_action(‘init’, ‘event_custom_post_type’);
function cus_roles_set() {
global $wp_roles;
$role = get_role( ‘administrator’ );
if ( $role ) {
$role->add_cap( ‘edit_custco’ );
$role->add_cap( ‘read_custco’ );
$role->add_cap( ‘delete_custco’ );
$role->add_cap( ‘delete_event’);
$role->add_cap( ‘edit_event’ );
$role->add_cap( ‘edit_others_event’ );
$role->add_cap( ‘delete_others_event’ );
$role->add_cap( ‘publish_event’ );
$role->add_cap( ‘edit_published_event’ );
$role->add_cap( ‘delete_published_event’ );
$role->add_cap( ‘delete_private_event’ );
$role->add_cap( ‘edit_private_event’ );
$role->add_cap( ‘read_private_event’ );
}
}
add_action( ‘init’, ‘cus_roles_set’ );
コストコにも行かず、仕事してしまいました…コストコブログなのに…(嘘)