Intereting Posts
Сбросить и уменьшить выходной буфер Пользовательские возможности темы WordPress не работают Моя тема DIY не имеет параметров меню WordPress Короткое описание стиля списка Удаление кнопок из редактора html Передача значений параметра связи для формирования Admin – создать статус персонализированного сообщения и отобразить его выше таблицы. Проблема при создании таблицы через код плагина cmb2: Мне нужно сохранить значение поля за пределами текущего сообщения. Есть ли крючок, который я могу использовать? Санизировать значение настраиваемого поля в мета-запросе Копирование класса виджетов в functions.php на пустую страницу Как привести старый отредактированный / измененный пост в начале страницы? Стиль виджета пользовательского меню WordPress Новый пользовательский адрес WordPress Столбец для столбца с сообщением на странице списка сообщений администратора

Объявить зависимость плагина

Я написал собственный плагин, который использует определенный сторонний код плагина, поэтому я хочу объявить, что мой плагин зависит от этого стороннего плагина, возможно ли это? Каким будет нормальный подход к этой проблеме?

Solutions Collecting From Web of "Объявить зависимость плагина"

Это невозможно в ядре. Есть несколько способов приблизиться к этому.

1. plugins_loaded в plugins_loaded чек, чтобы увидеть, существует ли X из вашего плагина зависимостей.

 add_action('plugins_loaded', 'wpse120377_load'); function wpse120377_load() { if (!class_exists('Some_Class_From_Another_Plugin')) { // dependency not installed, bail return; } // load the rest of your plugin stuff here } 

plugins_loaded к plugins_loaded : каждый plugins_loaded плагин будет загружен этой точкой. Только в (или после) плагинах загружаются огни, которые вы можете выполнить точную проверку зависимости.

2. Посмотрите, поддерживает ли плагины крюки

Возьмите сообщения 2 сообщения . Он обеспечивает крючок, называемый p2p_init который запускается при его загрузке. Если ваш плагин зависимостей делает что-то подобное, вам не нужно подключаться к plugins_loaded и делать чек. Просто подключитесь к действию init плагинов (или что-то еще) и загрузите свою функциональность оттуда.

 add_action('p2p_init', 'wpse120377_load2'); function wpse120377_load2() { // load your plugin } 

3. Путь «Ницца к пользователю»

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

 add_action('plugins_loaded', 'wpse120377_load3'); function wpse120377_load3() { if (!class_exists('Some_Class_From_Another_Plugin')) { // dependency not installed, show an error and bail add_action('admin_notices', 'wpse120377_error'); return; } // load the rest of your plugin stuff here } function wpse120377_error() { ?> <div class="error"> <p> <?php _e('{PLUGIN NAME} requires {ANOTHER PLUGIN}. Please install it.', 'wpse'); ?> </p> </div> <?php }