Intereting Posts
Обновление одного и того же содержимого в нескольких сообщениях одновременно? Измените размер квадратного изображения одного продукта в woocommerce без обрезки пустой запрос прерывает другие запросы Нужно ли сохранять исходную страницу при переадресации 301 на новую? Сообщения WPDB Multiple site и получаемые изображения Как показать больше случайных сообщений, если тег имеет менее 3 сообщений remove_action с profile_personal_options wp_remote_get сохраняет тайм-аут Как подавить код статуса 404 на странице WordPress? Является ли «_s» на этом `sprintf (__ ('Page% s', '_s'), max ($ paged, $ page))` просто ссылается на текстовый домен? Сообщения WP_query, наиболее близкие к сегодняшним датам Удаление опции сортировки для столбцов на странице списков сообщений MySQL: Можно заменить все wp_posts.post_content (id #) через UPDATE + REPLACE + SELECT? Как использовать команду «Подготовить запрос» с переменными Результаты поиска URL без строковых переменных запроса

Почему действие customize_register выполняется дважды?

add_action( 'after_setup_theme', 'wdwt_customizer_register' ); function wdwt_customizer_register(){ add_action( 'customize_register', 'wdwt_customizer_add_panels' ); } function wdwt_customizer_add_panels($wp_customize ){ /*this function is called twice*/ } 

То же самое можно сказать и о двадцать девятой теме. Функция twentyfifteen_customize_register подключенная к одному и тому же тегу, вызывается дважды.

Кажется, что действие «customize_register» выполняется дважды, один раз в администраторе customizer и один раз в части предварительного просмотра. Версия WordPress – 4.3.

Это ошибка или функция?

Solutions Collecting From Web of "Почему действие customize_register выполняется дважды?"

Я думаю, что customizer создает запрос xhr для загрузки предварительного просмотра сайта (см. Раздел devtools в сети> xhr). В моем случае я хочу проверить, существует ли определенная переменная isset через переменную $ _GET ['foo']. Моя функция должна быть вызвана один раз, а не дважды, иначе она переопределит мое предыдущее состояние.

Мое решение – проверить, является ли $ _POST ['wp_customize'] пустым или нет. Если пустой, это означает, что моя функция дважды не вызывается вызовом предварительного просмотра.

Я использую следующие hook / action customize_loaded_components

Пример:

 function wpdocs_remove_widgets_panel( $components ) { if( empty( $_POST['wp_customize'] ) ) { // Do stuff here that will not be loaded twice by the previewer } return $components; } add_filter( 'customize_loaded_components', 'wpdocs_remove_widgets_panel' );