Адміністраторська частина WordPress – одна з переваг системи. Тим не менш, залежно від ваших потреб, меню може бути трохи переповненим речами, які вам не потрібні.
У цьому посібнику я покажу вам, як "приручити" ваше меню адміністратора. Я покажу, як перейменовувати меню, змінювати порядок пунктів меню або просто видаляти їх, не торкаючись ядра. Тому що чіпати ядро небажано.
Перейменування пунктів меню
Іноді ви хочете перейменувати один з пунктів меню панелі адміністратора. Наприклад, у вас сайт рецептів і ви використовуєте "Записибільше для списку рецептів, ніж для блогу.
Щоб зробити це, вам потрібно використовувати зачіпку до action admin_menu. Він використовується для додавання підменю в меню консолі або для інших установок меню.
Перейменування меню верхнього рівня
По-перше, вам потрібно створити функцію, а потім прив'язати її до дію всередині файлу functions.php вашої теми.
function edit_admin_menus() { global $menu; } add_action( 'admin_menu', 'edit_admin_menus' );
Пункти меню консолі WordPress зберігаються в масиві ($menu). Так що перше, що ви бачите, edit_admin_menus використовує $menu, щоб отримати масив Тепер потрібно визначити ключ, пов'язаний з пунктом меню, який ви хочете перейменувати. Список усіх пунктів меню та підменю буде надано в кінці посібника.
Оскільки ми хочемо поміняти менюЗаписи"на"Рецепти", ми знаємо, що нам потрібно використовувати 5.
function edit_admin_menus() { global $menu; $menu[5][0] = 'Рецепты'; // Изменить Записи на Рецепты } add_action( 'admin_menu', 'edit_admin_menus' );
Вірите чи ні, це все. Збережіть functions.php та оновіть сторінку консолі. Але тепер підменю не співпадають із новим ім'ям.
Перейменування підменю
Перейменування підменю – майже той самий процес, крім того, що вам потрібно додати глобальну змінну $submenu і вам також потрібно буде використовувати посилання URI. Так що, наприклад, зміна "всі пости"на"Усі рецептибуде виглядати приблизно так:
$submenu['edit.php'][5][0] = 'Все Рецепты';
Ви можете зробити це для кожного пункту підменю. Всі разом edit_admin_menus буде виглядати приблизно так:
function edit_admin_menus() { global $menu; global $submenu; $menu[5][0] = 'Рецепты'; // Изменить Записи на Рецепты $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' );
Ця процедура застосовується до всіх пунктів меню та підменю в Консолі WordPress.
Зміна порядку пунктів меню
Тепер я збираюся показати вам, як змінювати порядок пунктів меню, включаючи роздільники. Я зазвичай волію, щоб пункти Медіафайли и Посилання були нижче, оскільки я не використовую їх так часто, як Записи и Коментарі.
Зміна порядку меню консолі вимагає використання фільтра меню_замовлення. В той же час, фільтр меню_замовлення вимагає, щоб ви спочатку активували custom_menu_order. Так що спочатку вам потрібно розмістити наступний код у ваш functions.php.
function custom_menu_order($menu_ord) { if (!$menu_ord) return true; return array( 'index.php', // Консоль 'separator1', // Первый разделитель 'edit.php', // Записи 'upload.php', // Медиафайлы 'link-manager.php', // Ссылки 'edit.php?post_type=page', // Страницы 'edit-comments.php', // Комментарии 'separator2', // Второй разделитель 'themes.php', // Внешний вид 'plugins.php', // Плагины 'users.php', // Пользователи 'tools.php', // Инструменты 'options-general.php', // Параметры 'separator-last', // Последний разделитель ); } add_filter('custom_menu_order', 'custom_menu_order'); // Применить custom_menu_order add_filter('menu_order', 'custom_menu_order');
Пункти меню впорядковані зверху вниз, тому пункт меню, який ви розмістите вгору масиву, буде першим пунктом. Якщо ви не помістите один із стандартних пунктів меню в масив, він просто буде в кінці списку, це не видалити його з меню.
Видалення пунктів меню
Ви перейменували деякі пункти меню і ви впорядкували їх як вам подобається. Але що якщо ви взагалі не використовуєте керування сторінками чи посиланнями? Можна просто видалити ці пункти.
Видалення меню верхнього рівня
Видалення пункту меню з панелі адміністратора – дуже просте завдання. WordPress має вбудовану функцію саме для видалення меню:
remove_menu_page();
Все, що потрібно, це видалити_сторінку_меню – коротке посилання (slug) на меню, яке ви хочете видалити (список також можна знайти в кінці цього посібника) .
Так що, наприклад, якщо ви бажаєте видалити меню ІнструментиВам потрібно буде використовувати наступне:
remove_menu_page('tools.php');
Видаляючи меню, можна просто використовувати знову ту ж функцію, яку ви створили для перейменування меню. Ось приклад функції, яку ви використовували на початку цього посібника, коли перейменовували меню Запис, але тепер вона також видаляє пункт меню Інструменти.
function edit_admin_menus() { global $menu; global $submenu; $menu[5][0] = 'Рецепты'; // Изменить Записи на Рецепты $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'); // Убрать меню Инструменты } add_action( 'admin_menu', 'edit_admin_menus' );
Видалення підменю
Видаляти підменю так само просто. Ми будемо використовувати функцію дуже схожу на функцію видалення меню верхнього рівня. Ось приховування Редактора тем з меню Зовнішній вигляд:
remove_submenu_page('themes.php','theme-editor.php');
Єдина відмінність у аргументах функції – те, що вам потрібно подати коротке посилання для батьківського елемента підменю, а потім посилання для самого підменю. І останній приклад коду, що приховує все меню Інструменти і підміню Редактор тем:
function edit_admin_menus() { global $menu; global $submenu; $menu[5][0] = 'Рецепты'; // Изменить Записи на Рецепты $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'); // Убрать меню Инструменты remove_submenu_page('themes.php','theme-editor.php'); // Убрать подменю Редактор тем } add_action( 'admin_menu', 'edit_admin_menus' );
На закінчення
Як ви бачите, деякі базові налаштування панелі адміністратора WordPress прості и зручні, і незважаючи на те, що більшість не побачить змін, в результаті це може вам дуже допомогти (і допоможе). Організація ніколи не зашкодить. Ви робите це з користувача теми, чому б не зробити це і в адміністраторській.
Це також добре, якщо ви ведете сайт для клієнта. Приховування тих пунктів меню, використання яких може випадково завдати шкоди сайту, завжди великий плюс!
Як обіцяв, я ввімкнув таблицю, в якій вказані всі назви, ключі та посилання меню та підменю (Англійська мова).
Коментарі до запису: 16
Дуже корисний матеріал, зараз саме роблю один проект і потрібно максимально полегшити адмінку. Дякую!
Корисно.
Але в мене обернена ситуація. мені потрібно відновити віддалений пункт "Зовнішній вигляд", але ніяких функцій edit_admin_menus у файлах function.php немає.
Як ще можна видалити цей пункт?
Запитання. У мене після оновлення ця ліва панель взагалі не відображається!!! Що робити?
Безумовно, стався збій під час оновлення. Спробуйте скачати дистрибутив з оновленням і розгорнути його вручну на сайті, попередньо видаливши всі папки крім wp-content та файлу config.php
Я не дуже зрозумів. Це все робиться через консоль wordpress чи в якомусь редакторі? У мене зараз встановлена версія 3.8
Це все робиться шляхом виправлення файлу functions.php всередині вашої активної теми. Це можна робити в будь-якому редакторі коду, можна навіть через консоль wordpress (Зовнішній вигляд — Редактор — functions.php)
Вибачте, можливо я тупий, але хоч убийте масив $menu так і не знайшов (тема twentyfourteen)
Ви і не повинні його знайти, просто скопіюйте один з прикладів вище (який починається з function edit_admin_menus()) і вставте в кінці вашого файлу functions.php
Величезне спасибі! І заздалегідь вибачаюсь за подібні питання надалі.
Доброго дня, підкажіть як перейменувати слово «мітки», тільки не в адмін панелі, а на самому сайті.
Це можна зробити шляхом переведення понять локалізації. У темі має бути папка lang або language, де зберігаються файли .po/.mo з перекладеними фразами. Ви можете відредагувати їх за допомогою PoEdit.
Дякую, вийшло.
Де регулюється розмір шрифту самої адмінпанелі WordPress. У мене чомусь сатл такий дрібний, що просто замучився з ним працювати.
Підкажіть, будь ласка, чому в адмін панелі розміри фото показує як налаштував, а переходиш на перегляд і показує квадрат
Ось адмінка http://toursector.org.ua/wp-content/uploads/2016/07/adminka.png
Ось перегляд http://toursector.org.ua/wp-content/uploads/2016/07/prosmotr.png
А ось тут (так краще) http://toursector.org.ua/otdyx-v-karpatax/slavskoe-2/ з точністю навпаки. В адмінці квадрати, а в перегляді як у налаштуваннях
Може комусь знадобиться — якщо у вас створено новий тип запису, то просто URI інший прописуєте (наприклад, не edit.php, а edit.php?post_type=product).
Але питання, сподіваюся, тут дадуть відповідь — як перейменувати скрізь Рубрики в Категорії, Теги на Теги тощо? Толку, що просто в пункт меню в адмінці перейменується згідно з інструкцією цієї (дякую за неї), а при додаванні запису і взагалі у всій адмінці все одно в інших місцях «Рубрики», «Мітки» тощо, якщо робити, то скрізь і до ладу доводити. :)
Доброго часу доби. Стаття корисна, дякую. Але одне питання, коли я роблю заміну трьома мовами, заголовки в самому списку меню відображаються коректно, а ось при вході до списку всіх «статей» підхоплюється код типу «[:en]Articles[:ru]Статті[:ka]სტატიები[ :]» (використовую qTranslate). Тобто. йому не подобається друга функція. Може хтось стикався з подібною проблемою? спасибі заздалегідь