Rozwiązania, które widziałem, są z perspektywy dodawania funkcji javascript do motywu. Jednak OP zapytał konkretnie: „Jak dokładnie dodać to dla pojedynczej strony WordPress?” Wygląda na to, że może to być sposób, w jaki używam javascript na moim blogu Wordpress, gdzie poszczególne posty mogą mieć różne "widżety" oparte na javascript. Na przykład post może pozwolić użytkownikowi zmienić zmienne (suwaki, pola wyboru, pola wprowadzania tekstu) i wydrukować lub wyświetlić wyniki.
Zaczynając z perspektywy JavaScript:
- Napisz swoje funkcje JavaScript w osobnym pliku „.js”
Nie myśl nawet o umieszczeniu znaczącej części kodu JavaScript w html swojego posta - utwórz plik JavaScript lub inne pliki z kodem.
- Połącz swój JavaScript z kodem HTML swojego posta
Jeśli widżet JavaScript współdziała z kontrolkami i polami HTML, musisz zrozumieć, jak tworzyć zapytania i ustawiać te elementy z poziomu JavaScript, a także jak umożliwić elementom interfejsu użytkownika wywoływanie funkcji JavaScript. Oto kilka przykładów; po pierwsze, z JavaScript:
var val = document.getElementById(“AM_Freq_A_3”).value;
A z html:
<input type="range" id="AM_Freq_A_3" class="freqSlider" min="0" max="1000" value="0" oninput='sliderChanged_AM_widget(this);'/>
- Użyj jQuery, aby wywołać funkcję inicjalizacji widgetu JavaScript
Dodaj to do pliku .js, używając nazwy funkcji, która konfiguruje i rysuje widget JavaScript, gdy strona jest do tego gotowa:
jQuery(document).ready(function( $ ) {
your_init_function();
});
- W kodzie html swojego posta załaduj skrypty potrzebne do Twojego posta
W edytorze kodu Wordpress zazwyczaj umieszczam skrypty na końcu postu. Na przykład mam folder skryptów w moim głównym katalogu. Wewnątrz mam katalog narzędzi z typowym JavaScriptem, który mogą być współużytkowane przez niektóre moje posty - w tym przypadku niektóre z moich własnych funkcji matematycznych i biblioteki plotującej flotr2. Uważam, że wygodniej jest zgrupować JavaScript specyficzny dla postu w innym katalogu, z podkatalogami opartymi na dacie, zamiast na przykład korzystać z menedżera mediów.
<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>
- Umieść w kolejce jQuery
Wordpress rejestruje jQuery, ale nie jest dostępne, chyba że powiesz Wordpressowi, że go potrzebujesz, poprzez kolejkowanie. Jeśli tego nie zrobisz, polecenie jQuery zakończy się niepowodzeniem. Wiele źródeł mówi, jak dodać to polecenie do pliku functions.php, ale zakładamy, że znasz kilka innych ważnych szczegółów.
Po pierwsze, edycja motywu jest złym pomysłem - każda przyszła aktualizacja motywu usunie zmiany. Utwórz motyw potomny. Oto jak:
https://developer.wordpress.org/themes/advanced-topics/child-themes/
Plik functions.php dziecka nie zastępuje pliku motywu nadrzędnego o tej samej nazwie, ale dodaje do niego. Samouczek motywów potomnych sugeruje, jak umieścić w kolejce plik nadrzędny i podrzędny style.css. Możemy po prostu dodać kolejną linię do tej funkcji, aby również umieścić w kolejce jQuery. Oto mój cały plik functions.php dla motywu potomnego:
<?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');
}