Я бачив рішення з точки зору додавання javascript функцій до теми. Однак ОП запитала конкретно: "Як саме я додати його для однієї сторінки WordPress?" Це виглядає так, як я можу використовувати javascript у своєму блозі Wordpress, де окремі повідомлення можуть мати різні "віджети", що працюють на JavaScript. Наприклад, публікація може дозволити користувачеві змінювати змінні (повзунки, прапорці, поля введення тексту), а також графіки або списки результатів.
Починаючи з точки зору JavaScript:
- Запишіть свої функції JavaScript в окремий файл .js
Навіть не замислюйтесь про те, щоб у HTML-файл вашої публікації включити важливий JavaScript - створіть файл 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 вийде з ладу. Багато джерел розповідають про те, як додати цю команду до функцій.php, але припускають, що ви знаєте деякі інші важливі деталі.
По-перше, погана ідея редагувати тему - будь-яке подальше оновлення теми знищить ваші зміни. Складіть дитячу тему. Ось як:
https://developer.wordpress.org/themes/advanced-topics/child-themes/
Дочірній файл function.php не замінює однойменний файл батьківської теми, він додає до нього. Навчальний посібник-теми підказують, як зав'язати батьківський та дочірній файл style.css. Ми можемо просто додати ще одну лінію до цієї функції, щоб також залучати jQuery. Ось мій весь файл function.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');
}