Ich versuche, ein Plugin von github (https://github.com/rendro/countdown) der richtige Weg auf meiner WordPress-Seite. Nach stundenlanger Recherche im Codex und hier im Stack kann ich immer noch keinen Weg finden, es zum Laufen zu bringen.
Wenn ich die Standardmethode verwende:
1) Hinzufügen dieser Zeilen zum <head>
von meinen header.php
Datei:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="/path/to/jquery.countdown.js"></script>
2) Zwischendurch das Plugin mit meiner Wunschkonfiguration initialisieren </head>
und <body>
in meinem header.php
Datei, in diesem Fall:
<script>
$(function() {
var endDate = "November 30, 2015 10:00:00";
$('.countdown.styled').countdown({
date: endDate,
render: function(data) {
$(this.el).html("<div>" + this.leadingZeros(data.days, 2) + " <span>days</span></div><div>" + this.leadingZeros(data.hours, 2) + " <span>hours</span></div><div>" + this.leadingZeros(data.min, 2) + " <span>minutes</span></div><div>" + this.leadingZeros(data.sec, 2) + " <span>seconds</span></div>");
}
});
});
</script>
3) Und dann das Plugin in meiner HTML-Datei aufrufen:
<?php if(is_front_page() ) { ?>
<div id="cdtoevent" class="countcont">
<div class="countdown styled"></div>
</div>
<?php } ?>
Es funktioniert perfekt!
Wenn ich es aber versuche der richtige Weg
(Wenn ich das richtig verstehe, wird WordPress standardmäßig mit jQuery ausgeliefert. Wenn ich die Standardmethode verwende, bringe ich den Benutzer dazu, jquery zweimal herunterzuladen, was auch meine Ladezeit verlängert, oder?)
Das bedeutet, dass ich jquery und dann mein Skript in my einreihen muss functions.php
Datei so:
wp_enqueue_script('jquery');
function add_cdtoevent() {
wp_enqueue_script('countdown', get_template_directory_uri() . 'countdown.js', array('jquery'), true );
}
add_action( 'wp_enqueue_scripts', 'add_cdtoevent' );
Und dann wiederholen Sie einfach Schritt 2) und 3) der Standardmethode nicht Arbeit ! Ich habe versucht, meinen Jquery-Code in Schritt 2) wie folgt zu verpacken:
jQuery(document).ready(function( $ ) {
// $ Works! You can test it with next line if you like
// console.log($);
});
Aber es funktioniert immer noch nicht. Wenn jemand helfen könnte, wäre es wirklich sehr zu schätzen!
Was ich aktuell in meinem habe header.php
:
<?php if(is_front_page() ) { ?>
<div id="cdtoevent" class="countcont">
<div class="countdown styled"></div>
</div>
<?php } ?>
Was ich aktuell in meinem habe footer.php
:
<script type="text/javascript">
$(function() {
var endDate = "November 14, 2015 10:00:00";
$('.countdown.styled').countdown({
date: endDate,
render: function(data) {
$(this.el).html("<div>" + this.leadingZeros(data.days, 2) + " <span>days</span></div><div>" + this.leadingZeros(data.hours, 2) + " <span>hours</span></div><div>" + this.leadingZeros(data.min, 2) + " <span>minutes</span></div><div>" + this.leadingZeros(data.sec, 2) + " <span>seconds</span></div>");
}
});
});
</script>
Was ich aktuell in meinem habe functions.php
:
// Loads JavaScript file with functionality specific to LCQC.
wp_enqueue_script('jquery');
function add_cdtoevent() {
wp_enqueue_script('countdown', get_template_directory_uri() . 'countdown.js', array('jquery'), true );
}
add_action( 'wp_enqueue_scripts', 'add_cdtoevent' );
Das jquery-Plugin (.js)
Skript ein
head
macht die Website langsam. Es ist besser, das Skript direkt vor dem schließenden Body-Tag zu verwenden. Auf diese Weise wird der gesamte Inhalt geladen. Wenn das erledigt ist, wird das Javascript geladen. Auf diese Weise sieht der Benutzer bereits etwas.– SuperDJ
4. November 2015 um 15:33 Uhr
Mein script-Tag befindet sich zwischen my
</head>
und<body>
Tags und nicht in<head>
. Danke aber für diesen kleinen Tipp. Das werde ich auf jeden Fall ändern!– Jake C.
4. November 2015 um 15:39 Uhr
Wie funktioniert es nicht? Irgendein Fehler in der Konsole?
– war
4. November 2015 um 17:34 Uhr
Ich bekam Fehler wie „Uncaught TypeError: $ is not a function“ und andere. Aber ich habe es endlich zum Laufen gebracht, mein Fehler war hauptsächlich, wo ich meine Funktion in meiner function.php-Datei platziert hatte.
– Jake C.
4. November 2015 um 17:42 Uhr