Это всего лишь предположение
Но, я думаю, это проблема времени.Вы используете действие init
для подключения других шорткодов плагинов.Возможно, что плагин еще не зарегистрировал свой шорткод через add_shortcode
или, если он зарегистрировал его, он может не включить файл, который определяет для него обратный вызов (по какой-либо причине).
Фактическикажется вероятным, потому что:
do_shortcode_tag был вызван неправильно.Попытка разобрать шорткод без действительного обратного вызова
Это указывает на то, что шорткод был вызван, и для него не было никакого обратного вызова.Это не проблема с вашим кодом, скажем так.Но он говорит, что плагин еще не загрузил файл, содержащий обратный вызов.
Вы можете проверить это, подключившись к действию, которое происходит позже в цепочке выполнения, после того, как вы знаете, что все плагины были загружены и инициализированы.,Как даже wp_head
Возможно, вам даже удастся избежать изменения приоритета крючка:
add_action('init', 'check_for_cookies', 20); //default is 10
Таким образом, он срабатывает в конце init
, но даже тогда онможет быть слишком раноЕдинственный реальный способ узнать это - посмотреть на код для плагина и выяснить, когда он регистрирует его «материал».Самый простой способ сделать это - добавить этот код в обратный вызов шорткода плагинов:
<code>try{
throw new \Exception();
}catch(\Exception $e){
die("<pre>{$e->getTraceAsString()}
");}
Это вызовет и затем перехватит исключение, а затем выведет трассировку стека.Это может точно показать вам, где шорткод настраивается. Вам нужно будет вызвать обратный вызов (очевидно), чтобы он работал. Вы также можете использовать print_r(debug_backtrace())
, но намного труднее читать IMO.
PS В последнее время я много работал над WP, и у меня просто была проблема с синхронизацией действий ... смеется. Поэтому я и подумал об этом, я потратил последние 2 дня на рефакторинг кода.замена частей добавления / редактирования / профиля пользовательской системы как на передней, так и на задней части. Это своего рода плагин для пользователей. И есть много конкурирующих действий, связанных с этим, если вы понимаете, что я имею в виду ...