Wiem, że mogę dodać plik skryptu do stopki Wordpress, która wymaga jquery przy użyciu tego kodu:
<?php
function my_scripts_method() {
// register your script location, dependencies and version
wp_register_script('custom_script',
get_template_directory_uri() . '/js/custom_script.js',
array('jquery'),
'1.0',
true);
// enqueue the script
wp_enqueue_script('custom_script');
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
?>
Ale co, jeśli chcę dodać tylko zwykły fragment wbudowanej jquery, a nie plik. Jak można to zrobić.
Edytować
Wiem, że mogę użyć tego skryptu, aby dodać coś do stopki:
<?php
function myscript() {
?>
<script type="text/javascript">
// This depends on jquery
</script>
<?php
}
add_action('wp_footer', 'myscript');
Ale jak określić używany skrypt wymaga uruchomienia jquery .
plugin-development
jquery
wp-enqueue-script
Saif Bechan
źródło
źródło
wp_register_script
iwp_enqueue_script
istnieje, ale możesz to sprawdzić za pomocą samej jquery.wp_enqueue_script
plik skryptu znajdował się w stopce, chcę dodać fragment do stopki, który wymaga jquery. Głosowałem za odpowiedzią pobraną bezpośrednio z kodeksu. Przeczytałem kodeks i nie znalazłem odpowiedzi, dlatego zadaję pytanie. Jeśli ponownie przekierujesz mnie do kodeksu, głosuję za.Odpowiedzi:
Najłatwiejszym sposobem na to jest połączenie działań
wp_enqueue_script
i stopek, o których wspominali już Saif i v0idless. Często używam jQuery w moich motywach i wtyczkach, ale umieszczam również wszystkie pozostałe skrypty w stopce.Najlepszym sposobem na kolejkowanie rzeczy jest:
Ale ten wycięty kod zakłada, że to ty ustawiasz się w kolejce skryptu, tzn. Robisz to we własnej wtyczce lub motywie.
W tej chwili nie ma sposobu, aby dodać skrypt wbudowany do stopki WordPress, a także załadować go z zależnościami. Ale istnieje alternatywa, jeśli chcesz.
Alternatywa
Kiedy WordPress działa ze skryptami, ładuje je wewnętrznie do obiektu, aby je śledzić. Wewnątrz obiektu znajdują się zasadniczo 3 listy:
Kiedy po raz pierwszy rejestrujesz skrypt,
wp_register_scripts()
który znajduje się na liście zarejestrowanych. Kiedywp_enqueue_script()
skrypt, to skopiowane do listy kolejki. Po wydrukowaniu na stronie jest dodawany do listy ukończonych.Zamiast więc ustawiać skrypt stopki w kolejce, aby wymagał jQuery, możesz udokumentować , że musi on używać jQuery i po prostu sprawdzić programowo, aby upewnić się, że jQuery jest załadowany.
Służy
wp_script_is()
do sprawdzania, gdzie znajduje się skrypt.Być może możesz użyć tego samego kodu, aby zmusić jQuery do załadowania się również w stopce, ale tego nie testowałem ... więc twój przebieg może się różnić.
źródło
Od wordpress 4.5 możesz dodać skrypt wbudowany przez
wp_add_inline_script()
. Aby dodać fragment kodu javascript do stopki wymagającej jQuery, ten kod pomagawp_add_inline_script z jquery wordpress
źródło
Użyj następującej
wp_footer
akcji:źródło
Wiem, że OP chce określić wymaganie dotyczące jQuery, a autorzy WordPressa powinni zezwolić na kolejkowanie fragmentów przylegających do plików skryptów, ale nie zrobili tego, więc nie zalecam wymuszania tego. Jeśli nie chcesz w ogóle zadzierać z kolejką lub jej kolejnością, tak jak ja (ponieważ korzystam z innych wtyczek, które łączą i optymalizują skrypty), wtedy odpowiedź jest
wp_footer
taka:źródło
W tym celu możesz użyć
wp_footer
akcji. Sprawdź kodeks dla wp_footer .źródło
in_footer
kłótniwp_enqueue_script
? Przeczytaj to: codex.wordpress.org/Function_Reference/wp_enqueue_script . Mówi ci, jak używać go zwp_footer
akcją.