Верх страницы
Обложка к записи Табы в админке WordPress
Время для прочтения: 1 мин. 30 сек.

Табы в админке WordPress

WP Admin Tabs — отличный пакет, устанавливаемый через composer, для создания навигации в виде вкладок (табов) для вашего плагина в админке WordPress.

Установка

Установка пакета производится через composer, детальную информацию по установке самого composer смотрите на официальном сайте.

$ composer require typisttech/wp-admin-tabs

Для предотвращения конфликтов в названих классов советую все классы WP Admin Tabs положить под собственный неймспейс. Сделать это автоматически можно через один из следующих прекрасных проектов:

Использование

Пример

Screenshot example
$adminTabCollection = new AdminTabCollection();
$adminTabCollection->add(
    new AdminTab( 'Блог', 'https://www.kobzarev.com/' ),
    new AdminTab( 'Плагины', admin_url( 'plugins.php' ) ),
);

// Выводит табы.
$adminTabCollection->render();

// Возвращает HTML строку с табами.
$html = $adminTabCollection->toHtml();

AdminTab

__construct

/**
 * Конструктор AdminTab.
 *
 * @param string $menuTitle Заголовок вкладки.
 * @param string $url URL вкладки.
 */
public function __construct( string $menuTitle, string $url ) {}

Например:

new AdminTab( 'Блог', 'https://www.kobzarev.com/' );
new AdminTab( 'Плагины', admin_url( 'plugins.php' ) );

AdminTabCollection

add

/**
 * Добавляет табы.
 *
 * @param AdminTab[] ...$adminTabs Массив табов.
 */
public function add(AdminTab ...$adminTabs) {}

Например:

$adminTabCollection = new AdminTabCollection();

// Добавляет один таб.
$adminTabCollection->add(
    new AdminTab( 'Users', admin_url( 'users.php' ) )
);

// Добавляет сразу много табов.
$adminTabCollection->add(
    new AdminTab( 'Блог', 'https://www.kobzarev.com/' ),
    new AdminTab( 'Плагины', admin_url( 'plugins.php' ) )
);

render

/**
 * Выводит табы через echo.
 *
 * @param AdminTab[] ...$adminTabs Массив табов.
 */
public function render() {}

Например:

$adminTabCollection = new AdminTabCollection();
$adminTabCollection->add(
    new AdminTab( 'Блог', 'https://www.kobzarev.com/' ),
    new AdminTab( 'Плагины', admin_url( 'plugins.php' ) )
);
$adminTabCollection->render();

toHtml

/**
 * Возвращает HTML с табами в виде строки.
 *
 * @return string
 */
public function toHtml() {}

Например:

$adminTabCollection = new AdminTabCollection();
$adminTabCollection->add(
    new AdminTab( 'Блог', 'https://www.kobzarev.com/' ),
    new AdminTab( 'Плагины', admin_url( 'plugins.php' ) )
);
$adminTabCollection->toHtml();

Вопросы и ответы

Это плагин?

Нет, это пакет, который вы можете сделать частью вашего плагина.

Что делать, если команда wp.org просит очистить папку vendor?

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

$ composer install --no-dev --prefer-dist --optimize-autoloader

Что делать, если два разных плагина используют этот пакет одновременно?

Положите все классы WP Admin Tabs под ваш собственный неймспейс, используя один из этих composer плагинов:

Есть ли примеры, где данный пакет используется вживую?

Само собой:

Чтобы добавить в этот список свой плагин, отредактируйте этот файл.

Пакеты выглядит великолепно. Где я ещё могу найти такие же вкусности?

Поддержка

Нравится wp-admin-tabs? Занесите Тану Руфусу персональный донат.

Хотите помочь другим способом или стать спонсором?

Свяжитесь с Таном Руфусом по почте.

Разработка

Для разворачивания девелоперской версии проекта выполните следующие команды в терминале:

$ composer create-project --keep-vcs --no-install typisttech/wp-admin-tabs:dev-master
$ cd wp-admin-tabs
$ composer install

Запуск тестов

WP Admin Tabs запускает тесты на Codeception и использует wp-browser для интеграции с WordPress. Перед запуском тестирования вам нужно установить WordPress локально и добавить файл codeception.yml. Смотрите файл *.suite.example.yml для Local by Flywheel.

После чего запускаем тесты:

$ composer test

Мы также тестируем все PHP файлы на соответствие PSR-2: Coding Style Guide и WordPress coding standard (WPCS). Данные тесты запускаются при помощи:

$ composer check-style

Обратная связь

Пожалуйста, не поленитесь и оставьте свой отзыв! Мы хотим, чтобы этот пакет был полезен как можно в бОльшем количестве проектов. Отправьте вопрос и укажите, что вам нравится, а что нет, или создайте форк проекта и внесите туда свои предложения, сделав в конце Pull Request.

Список изменений

Полный список всех изменений находится в файле CHANGELOG.

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

Безопасность превыше всего, поэтому, если вы нашли какую-либо ошибку в проекте, сообщите об этом лично на мыло wp-admin-tabs@typist.tech, в обход ишью трекера на GitHub.

Контрибьюторам

Пожалуйста, смотрите CONTRIBUTING и CODE_OF_CONDUCT для более детального описания.

Благодарность

WP Admin Tabs — это проект Typist Tech, который поддерживается Таном Руфусом. Полный список людей, участвующих в проекте, смотрите здесь.

Лицензия

WP Admin Tabs выпускается под лицензией GPLv2 (или выше) для Free Software Foundation. Более подробно можно посмотреть в файле Лицензии.

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, Opencart, DLE, Laravel, Moonshine, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

2 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Aleksey 六十 Karpov
Aleksey 六十 Karpov
2 лет назад

Ты перешёл на wpdicuz? Телеграм тоже не зашёл?

Предыдущая запись

Давайте дружить
в Телеграме

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы