Intereting Posts
Заголовок с контентом Изменить атрибут «Размеры» для изображений с определенным классом Интеграция файлов Buddypress, Wootumblog и WPMU Sitewide Сайт перемещен в HTTPS и загружается как HTTPS, но permalinks показывают как http как отображать содержимое сообщения без сообщения? Получить метаинформацию и связанный с ней пользовательский мета .htaccess и панель администратора WordPress Экран виджета заблокирован WP_enqueue_script () всегда загружает их в wp_footer ()? Можно ли применить meta_query к одному типу сообщения в запросе с многоуровневыми типами сообщений? Как установить пользовательские возможности для пользовательских таксономий? получение пользовательского почтового изображения через виджет Как выполнить модификацию the_content, если главная / стартовая страница? SQL: что не так со следующим запросом (сгенерированным WordPress WP_Query, ценой заказа) Автоматическое резервное копирование WordPress

Как определить константу перед плагином

У меня есть плагин, который имеет константу, я буду называть этот плагин PLUGIN A:

if ( ! defined('BLA')){ define('BLA', 'http://google.com); } 

Я хочу сделать еще один плагин PLUGIN B, который определит постоянную BLA перед PLUGIN A. Возможно ли это? Думаю, WordPress нужно читать PLUGIN B до PLUGIN A, но в каком порядке WordPress читает плагины?

Solutions Collecting From Web of "Как определить константу перед плагином"

Определяя константы в глобальной области вместо использования ловушек WordPress, первый загруженный плагин (см. Ответ, связанный с Kero) получит возможность определить константу.

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

 // code in plugin B add_action('plugins_loaded', function(){ if ( !defined('BLA') ) { define ( 'BLA', 'http://google.com' ); } }, 0); # <= 0 is the priority // code in plugin A add_action('plugins_loaded', function(){ if ( !defined('BLA') ) { define ( 'BLA', 'http://google.com' ); } }); # <= priority is 10 by default. 

Затем эта константа будет доступна в любой области, подключенной к крюку действий WordPress ( init , plugins_loaded , wp и т. Д.).

 // any other plugin add_action('plugins_loaded', function(){ echo BLA, PHP_EOL; # "http://google.com" hopefully }, 11); 

Надеюсь, это поможет.