WP Manifestindependent plugin directory
manifest / admin / wp-hub

WP Admin Menu Hub

Universal WordPress/WooCommerce admin-menu consolidator — hide or embed any plugin's menu item into a single tabbed hub

by Al Nemirov · github.com/al-nemirov/wp-hub

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/al-nemirov/wp-hub/archive/refs/heads/main.zip

Readme

WP Admin Menu Hub

Универсальный консолидатор админ-меню WordPress / WooCommerce. Любой пункт меню любого плагина можно показать, скрыть или встроить как вкладку в единый хаб — всё через UI, без правки кода чужих плагинов.

Зачем

Когда установлено много плагинов (доставка, синхронизация, аналитика, SMTP…), каждый вешает свой пункт в меню — сайдбар превращается в кашу, а персоналу видно всё подряд. Этот плагин наводит порядок: оставить в меню только нужное, остальное скрыть или собрать в один хаб с вкладками — отдельно для администратора и для персонала.

Возможности

  • 3 действия на пункт: Показать / Скрыть / Встроить (вкладкой в хаб).
  • Работает с любыми пунктами — и плагинов, и ядра WP (Записи, Плагины, Внешний вид, Инструменты…), и верхнего уровня, и подпунктов.
  • Применение по ролям: правила можно включить только для не-администраторов — владелец видит полное меню, персонал только нужное.
  • Настройка названия и иконки хаба.
  • Один хаб-пункт + горизонтальная панель вкладок поверх встроенных страниц.
  • Конфиг в одной опции; деактивация полностью возвращает меню.

Установка

  1. Скопировать папку wp-hub в wp-content/plugins/.
  2. Активировать «WP Admin Menu Hub» в разделе Плагины.
  3. Настройки → Menu Hub — настроить.

Как пользоваться

  1. Настройки → Menu Hub.
  2. Для каждого пункта меню выберите действие:
    • Показать — оставить как есть (по умолчанию);
    • Скрыть — убрать из меню (страница остаётся доступной по прямой ссылке);
    • Встроить — убрать из меню и показать карточкой/вкладкой в едином хабе.
  3. Задайте название и иконку хаба, выберите кому применять, сохраните.

Применение по ролям

  • Всем, кроме администраторов (по умолчанию) — администратор (manage_options) видит полное меню без изменений, у остальных (shop_manager, editor…) лишнее скрыто/встроено. Владелец сохраняет полный контроль, персонал видит только рабочее.
  • Всем, включая администраторов — правила применяются ко всем.

Страница настроек самого плагина администратору доступна всегда.

Как устроено скрытие/встраивание (важно)

Пункт меню не удаляется и страница не переносится. Это принципиально:

  • remove_submenu_page() / remove_menu_page() не просто убирают пункт — они ломают доступ к странице: WP начинает отвечать «у вас недостаточно прав» при заходе по URL. Поэтому удаление не используется.
  • Перенос страницы под другой родительский пункт сменил бы её hook-suffix и сломал бы её screen-specific JS (кнопки «проверить связь», подгрузка справочников и т.п.).

Вместо этого пункт прячется через CSS (#adminmenu li:has(> a[href$="…"]) { display:none }):

  1. Пункт исчезает из сайдбара, но страница остаётся полностью рабочей — доступна по URL, её скрипты грузятся на родном hook.
  2. Встроенные пункты собираются в один хаб-пункт (карточки), а поверх их страниц через in_admin_header рисуется общая панель вкладок.

Итог: чистое меню с одним хабом, при этом функциональность каждой страницы сохранена на 100%.

CSS-селектор :has() поддерживается всеми актуальными браузерами (Chrome/Edge 105+, Firefox 121+, Safari 15.4+).

Безопасность

  • Пункты options-general.php (Настройки), index.php (Консоль), сама страница плагина и хаб — защищены и не могут быть скрыты (защита от самоблокировки).
  • Ничего не удаляется — все страницы доступны по прямой ссылке и возвращаются в меню, как только снимете «Скрыть».
  • Конфигурация — в одной опции wphub_config; деактивация плагина возвращает меню как было.
  • Все формы — с nonce и проверкой capability; вывод экранируется.

Требования

  • WordPress 5.6+, PHP 7.4+.
  • WooCommerce не обязателен (плагин работает с любым админ-меню).

Лицензия

MIT.

Read the full README on GitHub →