Die Lösungen, die ich gesehen habe, bestehen aus der Perspektive, einem Thema Javascript-Funktionen hinzuzufügen. Das OP fragte jedoch speziell: "Wie genau füge ich es für eine einzelne WordPress-Seite hinzu?" Dies klingt so, als würde ich Javascript in meinem Wordpress-Blog verwenden, in dem einzelne Beiträge möglicherweise unterschiedliche "Widgets" mit Javascript enthalten. In einem Beitrag kann der Benutzer beispielsweise Variablen (Schieberegler, Kontrollkästchen, Texteingabefelder) ändern und die Ergebnisse zeichnen oder auflisten.
Ausgehend von der JavaScript-Perspektive:
- Schreiben Sie Ihre JavaScript-Funktionen in eine separate ".js" -Datei
Denken Sie nicht einmal daran, signifikantes JavaScript in das HTML Ihres Posts aufzunehmen - erstellen Sie eine oder mehrere JavaScript-Dateien mit Ihrem Code.
- Verbinden Sie Ihr JavaScript mit dem HTML-Code Ihres Beitrags
Wenn Ihr JavaScript-Widget mit HTML-Steuerelementen und -Feldern interagiert, müssen Sie wissen, wie Sie diese Elemente in JavaScript abfragen und festlegen und wie Sie UI-Elemente Ihre JavaScript-Funktionen aufrufen lassen. Hier sind einige Beispiele; Zunächst aus JavaScript:
var val = document.getElementById(“AM_Freq_A_3”).value;
Und von HTML:
<input type="range" id="AM_Freq_A_3" class="freqSlider" min="0" max="1000" value="0" oninput='sliderChanged_AM_widget(this);'/>
- Verwenden Sie jQuery, um die Initialisierungsfunktion Ihres JavaScript-Widgets aufzurufen
Fügen Sie dies Ihrer .js-Datei hinzu, indem Sie den Namen Ihrer Funktion verwenden, die Ihr JavaScript-Widget konfiguriert und zeichnet, wenn die Seite dafür bereit ist:
jQuery(document).ready(function( $ ) {
your_init_function();
});
- Laden Sie im HTML-Code Ihres Beitrags die für Ihren Beitrag erforderlichen Skripte
Im Wordpress-Code-Editor gebe ich normalerweise die Skripte am Ende des Beitrags an. Zum Beispiel habe ich einen Skriptordner in meinem Hauptverzeichnis. Im Inneren habe ich ein Dienstprogrammverzeichnis mit allgemeinem JavaScript, das einige meiner Beiträge möglicherweise gemeinsam nutzen - in diesem Fall einige meiner eigenen mathematischen Dienstprogrammfunktionen und die flotr2-Plotbibliothek. Ich finde es bequemer, das postspezifische JavaScript in einem anderen Verzeichnis zu gruppieren, wobei die Unterverzeichnisse auf dem Datum basieren, anstatt beispielsweise den Medienmanager zu verwenden.
<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>
- Enqueue jQuery
Wordpress registriert jQuery, ist jedoch nur verfügbar, wenn Sie Wordpress mitteilen, dass Sie es benötigen, indem Sie es in die Warteschlange stellen. Wenn Sie dies nicht tun, schlägt der Befehl jQuery fehl. In vielen Quellen erfahren Sie, wie Sie diesen Befehl zu Ihrer functions.php hinzufügen können. Nehmen Sie jedoch an, dass Sie einige andere wichtige Details kennen.
Erstens ist es eine schlechte Idee, ein Thema zu bearbeiten. Jedes zukünftige Update des Themas löscht Ihre Änderungen. Machen Sie ein untergeordnetes Thema. Hier ist wie:
https://developer.wordpress.org/themes/advanced-topics/child-themes/
Die Datei functions.php des Kindes überschreibt nicht die gleichnamige Datei des übergeordneten Themas, sondern fügt sie hinzu. Das Tutorial zu untergeordneten Themen schlägt vor, wie die übergeordnete und untergeordnete Datei style.css in die Warteschlange gestellt werden. Wir können dieser Funktion einfach eine weitere Zeile hinzufügen, um auch jQuery in die Warteschlange zu stellen. Hier ist meine gesamte Datei functions.php für das untergeordnete Thema:
<?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');
}