Решения, которые я видел, основаны на добавлении функций javascript в тему. Однако OP, в частности, спросил: «Как именно мне добавить его для одного страницы WordPress?» Это похоже на то, как я использую javascript в своем блоге Wordpress, где отдельные сообщения могут иметь разные «виджеты» на основе javascript. Например, сообщение может позволить пользователю изменять переменные (ползунки, флажки, поля ввода текста), а также отображать или перечислять результаты.
Начиная с точки зрения JavaScript:
- Напишите свои функции JavaScript в отдельном файле «.js».
Даже не думайте о включении значительного количества JavaScript в HTML вашего сообщения - создайте файл или файлы JavaScript с вашим кодом.
- Свяжите ваш JavaScript с HTML вашего поста
Если ваш виджет JavaScript взаимодействует с элементами управления и полями HTML, вам необходимо понимать, как запрашивать и устанавливать эти элементы из JavaScript, а также как разрешить элементам пользовательского интерфейса вызывать ваши функции JavaScript. Вот пара примеров; сначала из JavaScript:
var val = document.getElementById(“AM_Freq_A_3”).value;
И из html:
<input type="range" id="AM_Freq_A_3" class="freqSlider" min="0" max="1000" value="0" oninput='sliderChanged_AM_widget(this);'/>
- Используйте jQuery для вызова функции инициализации виджета JavaScript
Добавьте это в свой файл .js, используя имя вашей функции, которая настраивает и рисует ваш виджет JavaScript, когда страница для этого готова:
jQuery(document).ready(function( $ ) {
your_init_function();
});
- В html-коде вашего сообщения загрузите скрипты, необходимые для вашего сообщения.
В редакторе кода Wordpress я обычно указываю скрипты в конце сообщения. Например, у меня есть папка сценариев в моем основном каталоге. Внутри у меня есть каталог служебных программ с общим кодом JavaScript, которым могут пользоваться некоторые из моих сообщений - в данном случае некоторые из моих собственных математических служебных функций и графическая библиотека flotr2. Мне кажется более удобным сгруппировать специфичный для постов JavaScript в другом каталоге с подкаталогами на основе даты, например, вместо использования медиа-менеджера.
<script type="text/javascript" src="/scripts/utils/flotr2.min.js"></script>
<script type="text/javascript" src="/scripts/utils/math.min.js"></script>
<script type="text/javascript" src="/scripts/widgets/20161207/FreqRes.js"></script>
- Поставить в очередь jQuery
Wordpress регистрирует jQuery, но он недоступен, если вы не сообщите Wordpress, что он вам нужен, поставив его в очередь. Если вы этого не сделаете, команда jQuery завершится ошибкой. Многие источники сообщают вам, как добавить эту команду в файл functions.php, но предполагают, что вы знаете некоторые другие важные детали.
Во-первых, редактировать тему - плохая идея - любое будущее обновление темы приведет к аннулированию ваших изменений. Сделайте дочернюю тему. Вот как:
https://developer.wordpress.org/themes/advanced-topics/child-themes/
Дочерний файл functions.php не отменяет одноименный файл родительской темы, а добавляет к нему. В руководстве по дочерним темам предлагается, как поставить в очередь родительский и дочерний файл style.css. Мы можем просто добавить еще одну строку к этой функции, чтобы также поставить jQuery в очередь. Вот весь мой файл functions.php для дочерней темы:
<?php
add_action( 'wp_enqueue_scripts', 'earlevel_scripts_enqueue' );
function earlevel_scripts_enqueue() {
// styles
$parent_style = 'parent-style';
wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'child-style',
get_stylesheet_directory_uri() . '/style.css',
array( $parent_style ),
wp_get_theme()->get('Version')
);
// posts with js widgets need jquery
wp_enqueue_script('jquery');
}