Intereting Posts
Поддомен подстановки для одного и того же сайта Как добавить функцию «Нажмите, чтобы увеличить изображение», с расширенным открытием изображения во всплывающем окне? Как отключить заголовок кэша Vary в плагине W3Total Cache WP API V2 возвращает недопустимый идентификатор пользователя Увеличить результаты поиска для Admin -> Внешний вид -> Меню -> Поиск (по умолчанию – 10) Ошибка перенаправления поискового URL-адреса URL-адреса изображений перестали работать из-за постоянных ссылок? Как я могу получить WP для создания фида на основе нескольких таксономических условий Внешний вид> Меню Кнопка мультимедиа для комментариев привет, я не могу понять, как выводить динамически генерируемые поля ввода на страницу WordPress на лицевой стороне Добавление навигационного меню для пользовательского типа сообщения Альтернатива new_to_publish Крючок для пользовательских статусов Я разбил разбивку на страницы, те же сообщения на всех страницах (index.php) Должен ли я очистить кеш-память для кэширования?

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

В настоящее время я работаю над добавлением параметров в настройку темы. В течение последних двух часов я пытался получить предварительный просмотр в реальном времени, и я пытаюсь выяснить, почему моя тема не загружает файл theme-customizer.js необходимый для предварительного просмотра в реальном времени.

Все параметры, которые я добавил в тему-customizer, работают, если я сохраню его, а затем обновить страницу. Поэтому я знаю, что это не проблема с настройками.

В настоящее время у меня есть крючок для вызова JS-файла в файле customize.php вместе со всеми настройками для customizer. У меня также есть отдельная theme-enqueue.php где я помещаю другие JS-файлы для своей темы.

Вот пример того, что я пытаюсь вызвать JS-файл из моего файла customize.php :

 function mytheme_customize_preview_js() { wp_enqueue_script( 'mytheme-customizer', get_template_directory_uri() . '/js/theme-customizer.js', array( 'customize-preview' ), '20120187', true ); } add_action( 'customize_preview_init', 'mytheme_customize_preview_js' ); 

Когда я проверяю загруженные файлы javascript внутри хром, он загружает все те, которые мне нужны, за исключением этого. Может ли кто-нибудь пролить свет на ситуацию?

я думаю, что ваш скрипт загружен правильно, одна и та же функция используется в двадцать три (но ваш скрипт находится внутри iframe), но я могу ошибаться (не знаю, как именно ваша тема конструируется, возможно, это связанная с дорогой проблема с несколькими включенными)

введите описание изображения здесь

чтобы увидеть изменение без обновления, вам нужно использовать аргументы «transport» в add_setting и get_setting в вашей функции customize_register

 $wp_customize->add_setting( 'my_setting', array( 'default' => 'setting_value', 'transport' => 'postMessage', ) ); 

Это может быть либо «обновление» (по умолчанию), либо «postMessage». Установите этот параметр только в postMessage, если вы пишете пользовательский Javascript для контроля предварительного просмотра темы Customizer.

 $wp_customize->get_setting( 'my_setting' )->transport = 'postMessage'; 

Попробуй это

 function mytheme_customize_preview_js() { wp_enqueue_script( 'mytheme-customizer', get_template_directory_uri() . '/js/theme-customizer.js', array( 'customize-preview' ), '20120187', true ); } add_action( 'admin_init', 'mytheme_customize_preview_js' ); 

Вероятно, потому, что вы вызываете его из-за крюка WordPress или admin_init WordPress, тогда как вы должны называть его из-за крюка after_setup_theme.

Например:

 function mytheme_customize_preview_js() { wp_enqueue_script( 'mytheme-customizer', get_template_directory_uri() . '/js/theme-customizer.js', array( 'customize-preview' ), '20120187', true ); } function my_after_setup_theme(){ add_action( 'customize_preview_init', 'mytheme_customize_preview_js' ); } add_action( 'after_setup_theme', 'my_after_setup_theme' ); 

Это не может быть точным ответом на проблему. Но это помогло мне решить ту самую проблему, которую мы обсуждаем.

Поскольку использование 'transport' => 'postMessage' , я не смог просмотреть превью. Поэтому я создал новые файлы, используя следующий код в Github

Я просто скопировал этот код. Проверьте его, а затем измените его в соответствии с моими требованиями. Я знаю, что это не решение, но для меня это было лучше всего.

Спасибо Тому Макфарлину за код.