Удалить подменю из представления администратора для плагина, который регистрирует пользовательский тип записи - PullRequest
0 голосов
/ 16 апреля 2019

Я знаю, что есть 357 982 других постов об этом, НО им всем что-то не хватает, т.е. Фактический пример, который работает для тех из нас, кто не пишет 4594334 строки кода каждый день.

ТАК - Сценарий:

  1. Плагин, который регистрирует пользовательский тип записи
  2. Подменю, которое вы хотите скрыть

Что дальше?

1 Ответ

0 голосов
/ 16 апреля 2019

Лучшее решение, которое я нашел, на самом деле довольно простое и требует небольшой проверки источника и хорошего понимания того, что искать.

В этом примере woocommerce регистрирует пользовательский тип записи 'productс подменю, которое отображается как «Параметры продукта».Мы хотим скрыть это для пользователей без прав администратора.

При проверке пунктов меню мы находим, что гиперссылка для родительского меню имеет вид «edit.php? Post_type = event_ticket» - посмотрим немного дальше, и мы увидимчто гиперссылка для подменю имеет вид 'https://websitename.com/wp-admin/edit.php?post_type=product&page=product_attributes'

. Мы будем использовать ловушку add_action, как показано ниже.Обратите внимание, что мы используем URL для родительского меню, однако мы используем ТОЛЬКО параметр страницы для дочернего элемента.

add_action ('admin_menu', 'remove_menu_pages', 999);

function remove_menu_pages()
{
    if (current_user_can('manage_options') == false)
    {
        //1st parameter is parent URL | second is the 'page' parameter from the child url 
        remove_submenu_page('edit.php?post_type=product', 'product_attributes');

    }
}

Добавьте это в файл functions.php, а затем войдите в систему как пользователь без прав администратора, и теперь подменю должно быть скрыто.

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