Intereting Posts
Добавление зависимостей к скрипту enqueing Таможенная таксономия: те же условия, но для разных лет Почему не работает ОДИН из моих ссылок в нижнем колонтитуле? Создать пост для каждого пользователя? Мой стиль в моей дочерней теме загружается после родительской темы, но это ломает вещи: как загрузить его перед родительской темой? Переместите WordPress в подкаталог, сохраните ВСЕ URL-адреса Недавняя отдельная запись на страницах категорий Как создать случайный список дочерних страниц Как разбивать вложения на вторичный запрос в виде галереи? изменить роль пользователей WordPress при редактировании профиля Как я могу подтвердить, что я на главной странице Невозможно изменить информацию заголовка при попытке моего сайта с помощью www Интернационализация плагина Пользовательская тема – страницы в меню Варианты терминов WordPress Vs. настройки

Пользовательский режим не загружает 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 внутри хром, он загружает все те, которые мне нужны, за исключением этого. Может ли кто-нибудь пролить свет на ситуацию?

Solutions Collecting From Web of "Пользовательский режим не загружает JS для предварительного просмотра"

я думаю, что ваш скрипт загружен правильно, одна и та же функция используется в двадцать три (но ваш скрипт находится внутри 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

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

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