WP Admin Tabs — отличный пакет, устанавливаемый через composer, для создания навигации в виде вкладок (табов) для вашего плагина в админке WordPress.
Установка
Установка пакета производится через composer, детальную информацию по установке самого composer смотрите на официальном сайте.
$ composer require typisttech/wp-admin-tabs
Для предотвращения конфликтов в названих классов советую все классы WP Admin Tabs
положить под собственный неймспейс. Сделать это автоматически можно через один из следующих прекрасных проектов:
Использование
Пример
$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 плагинов:
Есть ли примеры, где данный пакет используется вживую?
Само собой:
Чтобы добавить в этот список свой плагин, отредактируйте этот файл.
Пакеты выглядит великолепно. Где я ещё могу найти такие же вкусности?
- Статьи в техническом блоге Typist
- WordPress плагины Тана Руфуса на wp.org
- Другие проекты Typist в профиле на GitHub
- В рассылке от Typist
- В аккаунте Тана Руфуса в Twitter
- Наняв Тана Руфуса для создания вашего нового сайта
Поддержка
Нравится 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. Более подробно можно посмотреть в файле Лицензии.
Источник: https://www.kobzarev.com/wordpress/tabbed-navigation/