Как передать переменные PHP в JavaScript в WordPress
Когда вы создаете тему или плагин WordPress, иногда у вас есть код JavaScript, который должен использовать данные / значения из PHP. Например, вам понадобятся эти значения в вашем коде JavaScript:
-
Homepage URL
Theme option values
WordPress posts data
etc
Самый простой способ сделать это – инициализировать эти значения в объектах JavaScript в файле темы header.php или в хуке wp_head. Например :
<script> var myThemeParams = { homeURL: <?php echo home_url(); ?>, themeOptions: <?php echo get_theme_mod( 'mytheme_options', false ); ?>, } </script>
Несмотря на то, что это работает, WordPress предоставил нам функцию для того, чтобы делать что-то подобное. Это называется wp_add_inline_script.
wp_add_inline_script( $handle, $data, $position = 'after' )
-
$ handle: Имя сценария, в который нужно добавить встроенный сценарий.
$ data: строка, содержащая добавляемый JavaScript.
$ position: добавлять ли встроенный скрипт перед дескриптором или после него.
Эта функция добавит встроенный скрипт до или после вашего кода JavaScript. На самом деле он может делать больше, кроме передачи переменных PHP в JavaScript. Здесь вы можете увидеть другой вариант использования.
Итак, чтобы использовать wp_add_inline_script для передачи переменных из PHP в JavaScript, вам необходимо установить для свойств позиции значение before, чтобы он добавлял встроенный скрипт перед вашим файлом JS. Затем инициализируйте объект JavaScript и установите значение с данными из PHP.
$myThemeParams = array( 'homeURL' => home_url(), 'themeOptions' => get_theme_mod( 'mytheme_options', false ) ); wp_enqueue_script( 'my-theme-script', get_template_directory_uri() . '/js/script.js' ); wp_add_inline_script( 'my-theme-script', 'var myThemeParams = ' . wp_json_encode( $myThemeParams ), 'before' );
В вашем JavaScript вы можете получить к нему доступ следующим образом:
console.log( myThemeParams.homeURL ); console.log( myThemeParams.themeOptions );
Связанные вопросы
- 2024-04-25 Apple сообщает, что работает над собственным серверным чипом искусственного интеллекта на основе 3-нм техпроцесса TSMC.
- 2024-04-25 исследователи используют детали суперконденсатора для создания нового типа натрий-ионной батареи
- 2022-08-20 Google стремится улучшить результаты поиска, предотвращая неоригинальный контент
- 2022-08-16 Microsoft отключит TLS 1.0 и 1.1 в Internet Explorer и EdgeHTML 13 сентября.
- 2022-08-15 Google выпускает Read Along для Интернета: Учим детей читать
Ваши комментарии
- forex 1楼
- Hi would you mind letting me know which hosting company you're working with? I've loaded your blog in 3 completely different web browsers and I must say this blog loads a lot faster then most. Can you recommend a good web hosting provider at a fair price? Thank you, I appreciate it!
- 发布于 2022/03/17 09:11
- Рейтинг сексуальности
-
- Как бесплатно перейти с Windows 10 на Windows 11
- Как избежать дублирования отправки страниц с формами
- Как передать переменные PHP в JavaScript в WordPress
- Что такое слабо типизированный язык программирования
- Разница между переводами строк и знаками абзаца
- Что такое window.postMessage в HTML5?
- Как реализовать функции перемотки браузера вперед и назад для кнопок веб-формы
- Расположение таблиц внезапно стало очень запутанным
- Как определить, подходит ли PHP для моего сайта или WordPress?
- Что такое язык сценариев
- Роль тега ul неупорядоченного списка
- Влияние автоматического кэширования на динамические страницы
- Что такое декларация XML-документа?
- Какие значения можно использовать для свойства background-position?
- В чем разница между фиксированным и абсолютным?
- Последние ответы
-
-
Как избежать дублирования отправки страниц с формами
binary options system strategy page Ответить 2022-04-01 03:42:00
-
Как определить, подходит ли PHP для моего сайта или WordPress?
แอพเปลี่ยนรูปเป็นภาพวาด Ответить 2022-03-27 18:27:12
-
Влияние автоматического кэширования на динамические страницы
50 deposit binary options Ответить 2022-03-24 05:31:20
-
Как избежать дублирования отправки страниц с формами
free binary options signals providers of goods Ответить 2022-03-20 12:29:02
-
Как избежать дублирования отправки страниц с формами
binary options strategy 5 minutes 15 min no loss acord Ответить 2022-03-20 09:44:29
-