Настройка меню WordPress для своих целей

Здравствуйте, уважаемые подписчики и посетители блога 4remind.ru. Предлагаю Вашему вниманию урок, в котором будут рассмотрены способы настройки меню WordPress в панели управления для своих нужд.
Многим думаю понятно и известно, что панель управления администратора в WordPress является одной из лучших. Однако, в зависимости от ваших потребностей, меню этой панели может показаться вам излишне переполненной разными позициями и пунктами, которые возможно только мешают и которыми Вы не собираетесь пользоваться.

Настройка меню WordPress под себя


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

Итак, начнем рассматривать, что мы можем сделать с меню по порядку.

Переименование меню

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

Меню администратора WordPress хранится в массиве $menu. Поэтому в начале функции edit_admin_menus() используется директива «global», чтобы получить доступ к массиву $menu. Затем определяется ключ (Key), связанный с пунктом меню, который мы хотим переименовать. И если мы например хотим изменить «Записи» (Posts) на «Посты», то как видно из таблицы (она в конце этого урока), нам понадобится использовать ключ «5»:

<?php
    function edit_admin_menus() {
      global $menu;
	  
      $menu[5][0] = 'Посты'; // изменяем "Записи" ("Posts") на “Посты”
    }
	
    add_action( 'admin_menu', 'edit_admin_menus' );
?>

Теперь добавляем этот код в файл functions.php, сохраняем его, обновляем страницу панели администратора и наслаждаемся полученным результатом.

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

Переименование подменю

Переименование подменю почти такой же процесс, как и описанный выше, но только за исключением того, что вам нужно добавить директиву «global» еще и к глобальному массиву $submenu, чтобы получить доступ к нему.
Далее, получив нужные нам значения ключей (смотрите таблицу в конце этого урока) к каждому пункту подменю, сразу внесем соответствующие дополнения:

<?php
    function edit_admin_menus() {
      global $menu;
      global $submenu;
	  
      $menu[5][0] = 'Посты'; // изменяем "Записи" ("Posts") на “Посты”
      $submenu['edit.php'][5][0] = 'Все Посты';
      $submenu['edit.php'][10][0] = 'Добавить новый Пост';
      $submenu['edit.php'][15][0] = 'Разделы'; // меняем Категории или Рубрики на Разделы
      $submenu['edit.php'][16][0] = 'Ключи'; // меняем Метки на Ключи
    }
	
    add_action( 'admin_menu', 'edit_admin_menus' );
?>

Теперь опять добавляем этот код в файл functions.php, сохраняем его, обновляем страницу панели администратора и проверяем результат своей работы.

Упорядочиваем пункты меню

Здесь мы разберемся с тем, как изменить порядок пунктов меню, включая разделители. В данном примере мы расположим «Медиафайлы» и «Ссылки» пониже, чем переименованный нами ранее «Посты», «Страницы» и «Комментарии».

Для достижения цели нам уже понадобится использовать фильтр menu_order. Однако для использования фильтра menu_order нам сначала необходимо активировать custom_menu_order. Поэтому перво наперво нужно будет поместить код активации custom_menu_order выше, чем фильтр menu_order. В итоге у нас должен получиться такой код:

<?php
    function custom_menu_order($menu_ord) {
      if (!$menu_ord) return true;
	  
      return array(
          'index.php', // Dashboard (Консоль)
          'separator1', // First separator (Первый разделитель)
          'edit.php', // Posts (Записи, Посты)
          'upload.php', // Media  (Медиафайлы)
          'link-manager.php', // Links (Ссылки)
          'edit.php?post_type=page', // Pages  (Страницы)
          'edit-comments.php', // Comments (Комментарии)
          'separator2', // Second separator (Второй разделитель)
          'themes.php', // Appearance (Внешний вид)
          'plugins.php', // Plugins (Плагины)
          'users.php', // Users (Пользователи)
          'tools.php', // Tools (Инструменты)
          'options-general.php', // Settings (Параметры)
          'separator-last', // Last separator (Последний разделитель)
      );
    }
	
    add_filter('custom_menu_order', 'custom_menu_order'); // активация custom_menu_order
    add_filter('menu_order', 'custom_menu_order');
?>

Порядок следования пунктов меню в панели управления администратора WordPress определяется сверху вниз. Таким образом, порядок пунктов меню и разделителей зависит от порядка расположения соответствующих значений в массиве, который возвращает функция custom_menu_order($menu_ord). В массиве Вы можете расположить значение в любом порядке, как вам захочется, а если Вы пропустили, не добавили в массив какой-то из стандартных пунктов меню, то страшного ничего не случится, пункты меню не потеряются, а просто окажутся в самом низу всего меню.

Теперь опять добавляем этот код в файл functions.php, сохраняем его, обновляем страницу панели администратора и наслаждаемся результатами своей работы.

Удаление меню

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

Удаление меню верхнего уровня

Для удаления пунктов меню WordPress из панели управления администратора в движке уже предусмотрена встроенная функция:

<?php
    remove_menu_page ();
?>

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

Так, например, если Вы хотите удалить меню «Инструменты» (Tools), то нужно использовать вот такой вызов:

<?php
    remove_menu_page ('tools.php');
?>

При удалении пункта меню вполне можно использовать уже ранее созданную нами функцию для переименования. В следующем коде показано, как заодно с переименованием можно и удалять некоторые позиции:

<?php
    function edit_admin_menus() {
      global $menu;
      global $submenu;

      $menu[5][0] = 'Посты'; // изменяем «Записи» (Posts) на «Посты»
      $submenu['edit.php'][5][0] = 'Все Посты';
      $submenu['edit.php'][10][0] = 'Добавить новый Пост';
      $submenu['edit.php'][15][0] = 'Разделы'; // меняем Категории или Рубрики на Разделы
      $submenu['edit.php'][16][0] = 'Ключи'; // меняем Метки на Ключи

      remove_menu_page('tools.php'); // удаляем меню Инструменты (Tools)
    }
	
    add_action( 'admin_menu', 'edit_admin_menus' );
?>

Удаление подменю

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

<?php
    remove_submenu_page ('themes.php’, ‘theme-editor.php');
?>

Единственное отличие в том, что первым аргументом функции должно быть имя файла-родителя и вторым аргументом должно быть имя файла обработки самого удаляемого подменю. Вот пример кода, где кроме переименования пунктов меню, скрытия меню «Инструменты» (Tools) еще из подменю «Внешний вид» удаляется пункт «Редактор»:

<?php
    function edit_admin_menus() {
      global $menu;
      global $submenu;

      $menu[5][0] = 'Посты'; // изменяем «Записи» (Posts) на «Посты»
      $submenu['edit.php'][5][0] = 'Все Посты';
      $submenu['edit.php'][10][0] = 'Добавить новый Пост';
      $submenu['edit.php'][15][0] = 'Разделы'; // меняем Категории или Рубрики на Разделы
      $submenu['edit.php'][16][0] = 'Ключи'; // меняем Метки на Ключи

      remove_menu_page('tools.php'); // удаляем меню Инструменты (Tools)
      remove_submenu_page('themes.php','theme-editor.php'); // удаляем подменю «Редактор» из меню «Внешний вид»
    }
	
	add_action( 'admin_menu', 'edit_admin_menus' );
?>

А вот и таблица, в которой перечислены все пункты меню (включая подменю и разделители), ключи (Key) и файлы с ними связанные (Slug)

Пункты меню, подменю WordPress, их ключи и связанные файлы

На этом урок окончен. Удачной вам настройки меню WordPress!

P.S.
Если у Вас что-то пошло не так, или Вы захотели после изменений все вернуть на место, то проблем с этим никаких не будет - просто удалите или закомментируйте в файле functions.php вашей темы код, который туда добавляли.

Источником данного урока послужил tutsplus.com

Метки: , ,
Другие статьи похожей тематики:

Поделитесь материалом с другими, воспользуйтесь этими кнопками:
Получать обновления и новые материалы блога по E-mail

3 комментария к “Настройка меню WordPress для своих целей”

  1. Roman:

    Настроить вордпрес под себя очень здорово

  2. Особенно полезно, если админом блога является совсем новичок, а сам блог ему настраивал кто-то из опытных. Удаление, переименование, изменение расположения пунктов меню в админке WordPress может новичку помочь избежать непредвиденных ситуаций, например, если он по ошибке вошел через меню в какой-нибудь раздел и что-то изменил там по неосторожности, а сам потом не может понять и найти причину, вызвавшую в последствии какие-то неполадки блога.

  3. Rymljanyn:

    Уже немножко работаю на этом движке, а тут вижу, что мало о нем знаю. Спасибо автору

Оставить комментарий

*

Подписаться на обновления блога 4remind.ru по RSS

Rambler's Top100
Рейтинг@Mail.ru


Яндекс.Метрика