Удалить "Записи" из админки, но оставить пользовательский тип записей

5 июл. 2012 г., 03:02:48
Просмотры: 16.8K
Голосов: 8

После изучения: http://codex.wordpress.org/Function_Reference/remove_menu_page,
я успешно использовал следующий код для скрытия некоторых пунктов меню:

add_action( 'admin_menu', 'my_remove_menu_pages' );

function my_remove_menu_pages() {
    remove_menu_page('link-manager.php');
    remove_menu_page('tools.php');
    remove_menu_page('users.php');
    remove_menu_page('edit-comments.php');  
}

Однако как страница "Записи", так и страница пользовательского типа записей используют один и тот же путь /wp-admin/edit.php.

Мне нужно скрыть пункт меню "Записи", но при этом оставить видимым меню для моего пользовательского типа записей.

0
Все ответы на вопрос 2
6
11

Выполняя этот поиск, я нашел этот отличный ответ от Chris_O. Там даже есть предложенное мной jQuery-решение.

В любом случае, функция remove_menu_page('edit.php'); удаляет только меню "Записи".

Но, как мы узнаем из ответа Криса, remove_menu_page('edit.php?post_type=athletes'); удаляет меню пользовательского типа записи.

Чтобы действительно заблокировать доступ к URL, так как мы лишь скрываем пункт меню, ознакомьтесь со следующим вопросом и ответом: Блокировка административного доступа для авторов и подписчиков?

5 июл. 2012 г. 03:54:48
Комментарии

Конечно, athletes — это название моего пользовательского типа записи... При необходимости измените.

brasofilo brasofilo
5 июл. 2012 г. 03:59:43

Работает! Круто! Спасибо, что показали, как можно было поискать!

Alisso Alisso
5 июл. 2012 г. 04:16:26

Можно выбрать два правильных ответа?

Alisso Alisso
5 июл. 2012 г. 04:16:55

@Alisso Нет. Вы можете выбрать только один. Поскольку оба варианта частично показывают одно и то же решение, возможно, стоит выбрать тот, который содержит все (или большинство) необходимых вам деталей. :)

its_me its_me
5 июл. 2012 г. 07:14:40

Эта функция ничего не удаляет, она лишь скрывает элемент.

User User
15 окт. 2015 г. 06:49:45

@Piet, автор озаглавил вопрос как "удалить", в конце спрашивает про "скрытие", но вопрос вообще не про "блокировку" доступа. Для полноты я добавлю ссылку.

brasofilo brasofilo
15 окт. 2015 г. 07:10:54
Показать остальные 1 комментариев
0

Я только что попробовал, и remove_menu_page('edit.php'); удаляет только верхний уровень меню "Записи".

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

5 июл. 2012 г. 03:51:49