Intereting Posts
Запросить настраиваемые типы сообщений и имя категории? Как изменить размер изображения после изменения темы? обнаруживать, когда короткий код запускался в последний раз Каков правильный / эффективный способ обновления тегов WordPress Post через REST API? Возвращает пользовательское значение в функции, добавленной в действие Как мне сделать так, чтобы люди могли зарегистрироваться на моем сайте WordPress? wp локализующий скрипт не работает Добавить класс Авторский класс в WordPress Использование запросов с несколькими типами сообщений и таксономией WordPress Inline Style отсутствует Перезапись пунктов разрыва меню в два раза в детской теме Манипулированный вывод короткого кода Как добавить функциональность после загрузки страницы благодарности? Как создать собственный заголовок? пейджинг работает неправильно на странице архивов новостей

обнаруживать, когда короткий код запускался в последний раз

Мне интересно, учитывая этот код:

add_shortcode( $tag , $func );

Есть ли крючок, который я могу использовать, который всегда будет называться ПОСЛЕ последнего вызова $func , но достаточно скоро, поэтому я все еще могу вызвать wp_localize_script() ?

WP Function referresres : add_shortcode , wp_localize_script

Не уверен в последний раз, но вы можете захватить каждый wp_localize_script() и либо вызвать wp_localize_script() здесь, либо зарегистрировать действие для wp_footer которое выполняется раньше, чем обработчик сценария wp_footer колонтитула.

Скажем, это оригинал:

 add_shortcode( 'foo', 'original_function' ); 

Теперь вы можете перезаписать его:

 add_shortcode( 'foo', 'new_function' ); function new_function( $atts, $content = '', $shortcode_name ) { wp_localize_script( 'my_handle', $data ); // alternative: register a callback for wp_footer add_action( 'wp_footer', 'localize_my_script', -2 ); return original_function( $atts, $content = '', $shortcode_name ); } 

Связанный, с более длинным примером: Использовать AJAX в коротком коде

Обновление в ответ на ваш комментарий

Учет всех аргументов для короткого кода gallery еще проще:

 add_filter( 'post_gallery', 'collect_gallery_args', 10, 2 ); function collect_gallery_args( $empty, $args ) { // store $args somewhere, then add_action( 'wp_footer', 'localize_my_script', -2 ); return $empty; } 

См. wp-includes/media.php .