Пользовательская таксономия - настройка доступа на основе роли или возможностей

Я только что узнал о пользовательских таксономиях для Wordpress. Как можно ограничить доступ моих пользователей к использованию таксономии. Например, я создал таксономию featured и я только хочу, чтобы редакторы и вышеупомянутые роли могли добавлять посты в эту таксономию.

Как мне установить уровень доступа? Либо на основе роли пользователя или возможностей, оба работают для меня.

Вот код, который я использую для моей таксономии:

function add_custom_taxonomies() {
    // Add new "Featured" taxonomy to Posts
    register_taxonomy('featured', 'post', array(
        // Hierarchical taxonomy (like categories)
        'hierarchical' => true,
        // This array of options controls the labels displayed in the WordPress Admin UI
        'labels' => array(
            'name' => _x( 'Featured', 'taxonomy general name' ),
            'singular_name' => _x( 'Featured', 'taxonomy singular name' ),
            'search_items' =>  __( 'Search Featured' ),
            'all_items' => __( 'All Featured' ),
            'parent_item' => __( 'Parent Featured' ),
            'parent_item_colon' => __( 'Parent Featured:' ),
            'edit_item' => __( 'Edit Featured' ),
            'update_item' => __( 'Update Featured' ),
            'add_new_item' => __( 'Add New Featured' ),
            'new_item_name' => __( 'New Featured Name' ),
            'menu_name' => __( 'Featured' ),
        ),
        // Control the slugs used for this taxonomy
        'rewrite' => array(
            'slug' => 'featured', // This controls the base slug that will display before each term
            'with_front' => false, // Don't display the category base before "/locations/"
            'hierarchical' => true // This will allow URL's like "/locations/boston/cambridge/"
        ),
    ));
}
add_action( 'init', 'add_custom_taxonomies', 0 );

1 ответ

Решение

Будет ли достаточно удалить метабокс со страницы редактирования сообщения? Если так, дайте это вихрем:

function remove_featured_meta() {
   if (!current_user_can('moderate_comments')){
       remove_meta_box( 'featureddiv', 'post', 'side' );
   }
}

add_action( 'admin_menu' , 'remove_featured_meta' );

Вы можете заполнить условный оператор так, чтобы соответствующая возможность соответствовала роли пользователя, которой вы хотите ограничить доступ к таксономии.

Другие вопросы по тегам