Так как WordPress предоставляет готовый интерфейс панели администрирования часто встает вопрос о кастомизации той или иной части админ меню, и так как речь о том что бы дополнить не свой собственный код, а чужой, хоть и отлично документированный то эта задачка резко ставит в тупик большую и отправляет в гугл часть разработчиков.
Я правда не понимаю почему так происходит, и как имея целый набор средств отладки найти предлог для поисков готового сниппета.
Сегодня как можно догадаться по контексту речь пойдет о удалении пунктов админ меню в WordPress.
Но я попытаюсь не давать вам рыбу, а постараюсь показать удочку
Нужно отметить что в качестве дебагера я использую плагины Kint Debugger + Debug Bar и опционально Debug Bar Actions and Filters Addon, что бы быстрее находить нужные action.
Я уже писал ранее о Kint Debugger, и о том почему он хорош.
Боковое меню:
Предположим страшное, то нам нужно удалить из меню что то такое чего мы не нашли в гугле и скопипасить не можем. Тут на помощь нам придет дебаг
function remove_left_menu_items(){ global $menu; end($menu); d($menu); } add_action('admin_menu', 'remove_left_menu_items');
С помощью конструкции d() мы может просмотреть всю структуру переменной $menu
И после отфильтровать нужные нам элементы массива,
function remove_menus(){ global $menu; //массив строк по которым мы отфильтруем меню $del_items = array( 'upload.php', "index.php" ); end($menu); foreach( $menu as $key=>$value ){ //здесь мы отбрасываем разделители (элементов в них всегда 5) if( count($value) > 5 ){ //проверяем на совпадение элемента массива и текущего пункта меню if( in_array($value[2] ,$del_items ) ){ unset($menu[$key]); } } } } add_action('admin_menu', 'remove_menus');
Теперь мы можем удалять не просто те пункты меню которые описаны в примерах , но и те которые просто захотим ( например можно удалить медиафайлы или записи), можно даже кроме записей немного изменить код и удалить разделители, но не это самое важное.
Главное теперь стало намного понятней как все это работает изнутри и надеюсь появилось понимание всей простоты этого кусочка кода.
Верхнее меню:
Здесь все аналогично за исключением того что на входи у нас не массив массивов а объект класса.
function remove_top_menu_items() { global $wp_admin_bar; //смотрим содержимое переменной d($wp_admin_bar); //удаляем пукт меню $wp_admin_bar->remove_menu('wp-logo'); } add_action( 'wp_before_admin_bar_render', 'remove_top_menu_items' );
В контексте функции глобальная переменная $wp_admin_bar содержит объект класса object WP_Admin_Bar с некоторым набором методов, пункты верхнего меню содержатся в nodes.
В примере я решил показать удаление пункта меню с логотипом WordPress аналогично из админбара можно удалить любой пункт верхнего меню, комментарии , добавить страницу, перейти на сайт и т.д.
P.S. В в репозитории есть несколько плагинов с похожими названиями, в статье говорится конкретно об этом https://wordpress.org/plugins/kint-debugger/
Здравствуйте
подскажите пож-та
установили весь набор (как у вас)
при открытии Kint Debugger в дебагконсоли ни чего не появляется (не открывается)
версия вп 4,4 — возможно что не будет работать??????
Как не странно , да проблема есть , заключается в том что вы скорее всего поставили плагин который называется Kint PHP Debugger, а тот что я описывал в статье просто Kint Debugger ссылка на правильный
https://wordpress.org/plugins/kint-debugger/
работают оба, но мне нравится Kint Debugger больше тем что он может вещать свой вывод на событие Debug bar и поэтому может выводить почти всё что угодно, а Kint PHP Debugger, выводит что то только если в позаботиться о том что бы его вывести где либо в шаблоне например, правильный Kint тоже так может если отключить Debug bar.
Подытожив ставьте Kint Debugger по ссылке выше и заработает, я проверил.
спасибо! но ставили именно тот что по ссылке 0,3версия Kint Debugger — значит проблема у нас, будем искать, возможно что-то не так делаем…
да, попробуйте на чистой установке
на чистой — все также…
в дебагконсоле — нажимаю Object Cache — в правом окне открывает инфо
нажимаю на Kint Debugger — ничего
очень странно ,я все же думаю что плагины какие то у вас не те , могу скинуть свои в архивчике , вот https://alkoweb.ru/wp-content/uploads/2016/01/debug-bar-and-kint-debugger.zip
если так не заработает , но можно списать на магию
:( не заработало
WordPress 4.4.1 с темой оформления Twenty Sixteen.
с нуля
грешу на js… но как исправить незнаю
f12 и в консоле браузера смотреть ошибки , возможно веб сервер неправильно отдает скрипты или браузер блокирует что то , можно в другом браузере протестить
опера — мозилла — хром все последних версий… тихо…
а через браузер разве получится посмотреть меню (то что в самой статье)?
мне как раз надо было получить ID номера категорий админ меню
вот так это нужно сделать edit.php => 15
:) спасибо! но вся проблема в том, что мне нужно переименовать пункт MailPoet (после установки плагина)
да и вообще раздражает когда плагины вставляют свои меню на «своем» языке…
да и вообще дебаггер помог бы в работе на будующее
вот так можно по простому дебажить
внизу админки вывалится лапша из var_dump , неудобно конечно , но можно посмотреть если выбора нет.