- 22, Oct 2024
- #1
Я немного не понимаю, как это сделать. Позвольте мне объяснить мою проблему.
У меня есть администратор, который может определять множество категорий. Затем я хочу, чтобы он мог через панель управления присваивать каждому пользователю несколько категорий.
Затем, когда пользователь разместит сообщение (пользовательский тип сообщения: новости и другие, используя одну и ту же таксономию «Категории»), он будет использовать тот, который указан администратором в его профиле.
Например, администратор заходит на панель управления user_1. Теперь он может видеть список категорий (он появляется при добавлении сообщения) и выбирать, к каким категориям принадлежит этот пользователь. Возьмем:
-ресторан
-- итальянский
Когда пользователь_1 входит в систему и добавляет новость, он не может выбирать категории, но при публикации новости она будет добавлена в эти две категории: «ресторан» и «итальянская кухня».
У кого-нибудь есть решение, которое я пытаюсь уже 3 дня :(
Заранее спасибо за вашу помощь
С уважением
Адриан
// Post type
add_action('init', 'postType');
// Custom Post type
function postType()
{
// News
register_post_type('news', array(
'label' => 'News',
'labels' => array(
'name' => 'News',
'singular_name' => 'News',
'all_items' => 'Toutes les News',
'add_new_item' => 'Ajouter une News',
'edit_item' => 'Éditer la News',
'new_item' => 'Nouvelle News',
'view_item' => 'Voir la News',
'search_items' => 'Rechercher parmi les News',
'not_found' => 'Pas de News',
'not_found_in_trash' => 'Pas de News dans la corbeille'
),
'public' => true,
'capability_type' => 'post',
'supports' => array(
'title',
'editor',
'excerpt',
'thumbnail',
'author'
),
'has_archive' => true,
'menu_icon' => 'dashicons-welcome-write-blog',
'hierarchical' => true,
'taxonomies' => array('category'),
'capabilities' => array(
'publish_posts' => 'publish_news',
'edit_posts' => 'edit_news',
'edit_others_posts' => 'edit_others_news',
'delete_posts' => 'delete_news',
'delete_others_posts' => 'delete_others_news',
'read_private_posts' => 'read_private_news',
'edit_post' => 'edit_news',
'delete_post' => 'delete_news',
'read_post' => 'read_news'
),
));
// News
register_post_type('etablissement', array(
'label' => 'Etablissement',
'labels' => array(
'name' => 'Etablissement',
'singular_name' => 'Etablissements',
'all_items' => 'Tous les Etablissements',
'add_new_item' => 'Ajouter un Etablissement',
'edit_item' => 'Éditer l\'Etablissement',
'new_item' => 'Nouvel Etablissement',
'view_item' => 'Voir l\'Etablissement',
'search_items' => 'Rechercher parmi les Etablissements',
'not_found' => 'Pas d\'Etablissement',
'not_found_in_trash' => 'Pas d\'Etablissement dans la corbeille'
),
'public' => true,
'capability_type' => 'post',
'supports' => array(
'title',
'editor',
'excerpt',
'thumbnail',
'author'
),
'show_ui' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-admin-multisite',
'hierarchical' => true,
'taxonomies' => array('category'),
'capabilities' => array(
'publish_posts' => 'publish_letablissements',
'edit_posts' => 'edit_letablissements',
'edit_others_posts' => 'edit_others_letablissements',
'delete_posts' => 'delete_letablissements',
'delete_others_posts' => 'delete_others_letablissements',
'read_private_posts' => 'read_private_letablissements',
'edit_post' => 'edit_letablissements',
'delete_post' => 'delete_letablissements',
'read_post' => 'read_letablissements',
// 'create_posts' => false,
'create_posts' => false,
),
));
// News
register_post_type('montreux', array(
'label' => 'Montreux',
'labels' => array(
'name' => 'Montreux',
'singular_name' => 'Montreux',
'all_items' => 'Touts les articles Montreux',
'add_new_item' => 'Ajouter un article Montreux',
'edit_item' => 'Éditer l\'article Montreux',
'new_item' => 'Nouvel article Montreux',
'view_item' => 'Voir l\'article Montreux',
'search_items' => 'Rechercher parmi les articles Montreux',
'not_found' => 'Pas d\'article Montreux',
'not_found_in_trash' => 'Pas d\'article Montreux dans la corbeille'
),
'public' => true,
'capability_type' => 'post',
'supports' => array(
'title',
'editor',
'excerpt',
'thumbnail',
'author'
),
'has_archive' => true,
'menu_icon' => 'dashicons-admin-home',
'hierarchical' => true,
'taxonomies' => array('category'),
'capabilities' => array(
'edit_post' => 'edit_montreux',
'edit_posts' => 'edit_montreux',
'edit_others_posts' => 'edit_other_montreux',
'publish_posts' => 'publish_montreux',
'read_post' => 'read_montreux',
'read_private_posts' => 'read_private_montreux',
'delete_post' => 'delete_montreux',
'delete_published_posts' => 'delete_published_montreux'
),
));
flush_rewrite_rules();
}
PS: Извините за мой плохой английский, я стараюсь изо всех сил.
Вот мой собственный пост в моих функциях