So fügen Sie der Fußzeile ein Javascript-Snippet hinzu, für das jQuery
-
-
Esgibt keineeingebaute Funktion,dieich kenne. Deshalbgibt es "wp_register_script" und "wp_enqueue_script",aber Sie können diesmit jquery selbst überprüfen.There is no built in function to do this that I know, it is why `wp_register_script` and `wp_enqueue_script` exist, but you can check using jquery itself.
- 0
- 2011-11-06
- Wyck
-
Entschuldigungfür die Ablehnung,aberichglaubenicht,dass Siemeine Frage verstehen.Ich habe den Kodexgelesen und kenne die Option.Aberichmöchte keine Skriptdateiin die Fußzeile "wp_enqueue_script"einfügen,sondernein Snippetin die Fußzeileeinfügen,für daseine Abfrageerforderlichist.* Ich habe die Antwort direkt aus dem Kodex abgelehnt.Ich habe den Kodexgelesen und keine Antwortgefunden,deshalb stelleicheine Frage.Wenn Siemicherneut zum Kodex weiterleiten,stimmeich ab. *Sorry for the downvote, but I do not think you understand my question. I have read the codex, and know about the option. But I do not want to `wp_enqueue_script` a script file into the footer, I want to add a snippet into the footer that requires jquery. *I downvoted the answer directly taken from the codex. I read the codex, and did not find an answer, that's why I ask a question. If you redirect me to the codex again I downvote.*
- 2
- 2011-11-06
- Saif Bechan
-
Danke wyck,ich denke dasist der Fall,danke,dass du die Frage richtig verstanden hast.Ich denke,ich werde stattdessennurein externes JS-Skript verwenden,um sicherzugehen,dass das Skript ausgeführt werden kann.Thanks wyck, I think this is the case, thank you for understanding the question correctly. I think I will just use an external JS script instead than to be sure the script can be run.
- 0
- 2011-11-06
- Saif Bechan
-
5 Antworten
- Stimmen
-
- 2011-11-06
Dereinfachste Weg,dies zutun,isteine Kombination aus
wp_enqueue_script
und den Fußzeilenaktionen,auf die Saif und v0idlessbereits verwiesen haben. Ich verwende häufigjQueryin meinen Designs und Plugins,aberichfüge auch alle anderen Skriptein die Fußzeileein.Derbeste Weg,um Dingetatsächlichin die Warteschlange zu stellen,wärefolgender:
function myscript() { ?> <script type="text/javascript"> if ( undefined !== window.jQuery ) { // script dependent on jQuery } </script> <?php } add_action( 'wp_footer', 'myscript' ); function myscript_jquery() { wp_enqueue_script( 'jquery' ); } add_action( 'wp_head' , 'myscript_jquery' );
Bei diesem Code wirdjedoch davon ausgegangen,dass Sie derjenige sind,der das Skriptin die Warteschlange stellt,d. h. Sietun diesin Ihremeigenen Plugin oder Thema.
Derzeitgibt es keine Möglichkeit,der WordPress-Fußzeileein Inline-Skript hinzuzufügen undes auchmit Abhängigkeiten zu laden. Aberesgibt eine Alternative,wenn Sie dazubereit sind.
Die Alternative
Wenn WordPressmit Skripten arbeitet,werden dieseinternin ein Objektgeladen,um sie zu verfolgen. Das Objektenthältim Wesentlichen drei Listen:
- registriert
- Warteschlange
- erledigt
- to_do
Wenn Sie zumersten Malein Skriptmit
wp_register_scripts()
registrieren ,wirdesin die registrierte Liste aufgenommen. Wenn Sie das Skriptwp_enqueue_script()
ausführen,wirdesin die Warteschlangenliste kopiert. Nachdemes auf der Seitegedruckt wurde,wirdes der Liste "Fertig" hinzugefügt.Anstatt Ihr Fußzeilenskriptin eine Warteschlange zu stellen,umjQuery zuerfordern,können Sie dokumentieren ,dassesjQuery verwendenmuss,undeinfachprogrammgesteuert überprüfen,objQuerygeladenist.
Hiermit wird
wp_script_is()
verwendet,um zu überprüfen,wo sich das Skriptbefindet aufgeführt.function myscript() { if( wp_script_is( 'jquery', 'done' ) ) { ?> <script type="text/javascript"> // script dependent on jQuery </script> <?php } } add_action( 'wp_footer', 'myscript' );
Möglicherweise können Sie denselben Code verwenden,um das Laden vonjQueryin die Fußzeile zuerzwingen,aberich habe dasnichtgetestet ... Ihre Laufleistung kann also variieren.
The easiest way to do this is actually a combination of
wp_enqueue_script
and the footer actions that Saif and v0idless already referenced. I frequently use jQuery in my themes and plugins, but I put all of the other scripts in the footer as well.The best way to actually queue things up would be this:
function myscript() { ?> <script type="text/javascript"> if ( undefined !== window.jQuery ) { // script dependent on jQuery } </script> <?php } add_action( 'wp_footer', 'myscript' ); function myscript_jquery() { wp_enqueue_script( 'jquery' ); } add_action( 'wp_head' , 'myscript_jquery' );
But this code snipped assumes that you're the one queueing the script, i.e. you're doing this in your own plugin or theme.
At the moment, there is no way to add an in-line script to the WordPress footer and also load it with dependencies. But there is an alternative, if you're willing.
The alternative
When WordPress works with scripts, it loads them internally to an object to keep track of them. There are essentially 3 lists inside the object:
- registered
- queue
- done
- to_do
When you first register a script with
wp_register_scripts()
it's placed in the registered list. When youwp_enqueue_script()
the script, it's copied to the queue list. After it's been printed to the page, it's added to the done list.So, rather than queueing your footer script to require jQuery, you can document that it needs to use jQuery and just check programatically to make sure jQuery is loaded.
This uses
wp_script_is()
to check where the script is listed.function myscript() { if( wp_script_is( 'jquery', 'done' ) ) { ?> <script type="text/javascript"> // script dependent on jQuery </script> <?php } } add_action( 'wp_footer', 'myscript' );
You might be able to use this same code to force jQuery to load in the footer as well, but I haven't tested that ... so your mileage my vary.
-
Wird Ihrbereitgestelltes Code-Snippet von den Entwicklungsstandards des WordPress-Plugins akzeptiert?Wennja,dann werdeichesin meinem Plugin verwenden ...bitte gibmireine Antwort darauf ...does your provided code snippet is accepted by WordPress plugin development standards ? If yes, then I will be using it in my plugin ... please give me a reply upon this ...
- 0
- 2016-10-19
- laraib
-
Der letzte Ausschnitt?Nein. WordPress-Plugins solltenimmer die Skriptanforderungenin die Warteschlange stellen.Das Erzwingen,dassjQuery auf diese Weise außerhalb des Warteschlangensystemsgeladen wird,istnuretwas,was Sie auf Ihrereigenen Sitetun sollten,auf der Sie 100% der Umgebung kontrollieren.Esistniemals angemessen,dassein Plugin diestut.The last snippet? No. WordPress plugins should _always_ enqueue script requirements. Forcing jQuery to load outside of the queue system in this way is only something you should do on your own site where you control 100% of the environment. It is _never_ appropriate for a plugin to do that.
- 0
- 2016-10-20
- EAMann
-
dann kannst dumirbitte einfunktionierendes Beispiel dafürgeben ...????then can u give me some working example for that please ... ????
- 0
- 2016-10-20
- laraib
-
Daichmein erstes WordPress-Pluginentwickle undesgerne vom WordPress-Team akzeptiertbekommen würde ...bitte warten Sie auf Ihre Antwort ... sagen Sie dies,damitichmein Pluginerstellen und akzeptieren kann...Because I am developing my first ever WordPress plugin and I would love to have that accepted by the WordPress team ... waiting for any of your response please .... have your say about this so that I can create and make accepted my plugin ...
- 0
- 2016-10-20
- laraib
-
- 2016-06-25
Seit WordPress 4.5 können Sie Inline-Skriptemit
ein Javascript-Snippet zur Fußzeile hinzufügen,für dasjQueryerforderlichistwp_add_inline_script()
hinzufügen.Mit diesem Code können Siefunction enqueue_jquery_in_footer( &$scripts ) { if ( ! is_admin() ) $scripts->add_data( 'jquery', 'group', 1 ); } add_action( 'wp_default_scripts', 'enqueue_jquery_in_footer' ); function theme_prefix_enqueue_script() { if(!wp_script_is('jquery', 'done')) { wp_enqueue_script('jquery'); } wp_add_inline_script( 'jquery-migrate', 'jQuery(document).ready(function(){});' ); } add_action( 'wp_enqueue_scripts', 'theme_prefix_enqueue_script' );
Since wordpress 4.5 you can add inline script by
wp_add_inline_script()
. To add a javascript snippet to the footer that requires jQuery, this code helps youfunction enqueue_jquery_in_footer( &$scripts ) { if ( ! is_admin() ) $scripts->add_data( 'jquery', 'group', 1 ); } add_action( 'wp_default_scripts', 'enqueue_jquery_in_footer' ); function theme_prefix_enqueue_script() { if(!wp_script_is('jquery', 'done')) { wp_enqueue_script('jquery'); } wp_add_inline_script( 'jquery-migrate', 'jQuery(document).ready(function(){});' ); } add_action( 'wp_enqueue_scripts', 'theme_prefix_enqueue_script' );
-
- 2011-11-06
Verwenden Sie die Aktion
wp_footer
wiefolgt:add_action( 'wp_footer', 'wpse33008'); function wpse33008() { ?> <script type="text/javascript"> /** INSERT SCRIPT HERE **/ </script> <?php }
Use the
wp_footer
action like this:add_action( 'wp_footer', 'wpse33008'); function wpse33008() { ?> <script type="text/javascript"> /** INSERT SCRIPT HERE **/ </script> <?php }
-
Diesist keinegute Antwort.Ichfragte,wieich das Skript angeben könnte,dasjQuerybenötigt.Wenn auf dem Benutzer keinejquery ausgeführt wird,wird Ihre Implementierungnicht ausgeführt.This is not a good answer. I asked how I could specify the script required jQuery. If the user does not have jquery running your implementation will not run.
- 1
- 2011-11-06
- Saif Bechan
-
- 2018-07-25
Ich weiß,dass OP eine AnforderungfürjQueryfestlegenmöchte,und die Autoren von WordPress hätten zulassen sollen,dass Snippetsneben Skriptdateienin die Warteschlangegestellt werden,diesjedochnicht. Daherempfehleich,nicht zuerzwingenes.Wenn Sie wieich überhauptnichtmit der Warteschlange oderihrer Reihenfolge herumspielenmöchten (weilich andere Plugins verwende,die Skripte kombinieren und optimieren),lautet die Antwort wirklich,den
wp_footer
zu verwendenAktion wiefolgt:<?php add_action( 'wp_footer' , function() { ?> <script> if (window.jQuery) { // your snippet } </script> <?php } , 21 # after enqueued footer scripts );
I know OP wants to specify a requirement on jQuery, and WordPress' authors should have allowed snippets to be enqueued adjacent to script files, but they didn't, so I recommend not trying to force it. If you don't want to mess with the queue or its order at all, like me (because I'm using other plugins that combine and optimise scripts), then the answer really is to use the
wp_footer
action like so:<?php add_action( 'wp_footer' , function() { ?> <script> if (window.jQuery) { // your snippet } </script> <?php } , 21 # after enqueued footer scripts );
-
-
Ich weiß,aber wie können Siefestlegen,dass das Skript,das Sie der Fußzeile hinzufügen,vonjquery abhängt.Überprüfen Siemeine Bearbeitung,umgenauer zu sein.I know, but how can you specify that the script you add to the footer is depending on jquery. Check my edit to be more spicific.
- 0
- 2011-11-06
- Saif Bechan
-
Haben Sie überhaupt die Mühe,den Kodex zu lesen,bevor Sie die Antworten der Leute ablehnen?Haben Siejemals über das Argument "in_footer"für "wp_enqueue_script"gelesen?Lesen Sie dies: http://codex.wordpress.org/Function_Reference/wp_enqueue_script.Hiererfahren Sie,wie Sieesmit der Aktion "wp_footer" verwenden.Do you even bother to read around the codex before voting down people's answers? Have you ever read about the `in_footer` argument to `wp_enqueue_script`? Read this: http://codex.wordpress.org/Function_Reference/wp_enqueue_script. It tells you how to use it with the `wp_footer` action.
- 1
- 2011-11-06
- Rutwick Gangurde
-
Ich weiß,dassichmit diesem Codeeine Skriptdatei zur Fußzeile von WordPress hinzufügen kann,für dieeine Abfrageerforderlichist:
Aber wasist,wennichnureinen normalen Ausschnitt vonjqueryinline hinzufügenmöchte,keine Datei. Wie kann dasgemacht werden?
Bearbeiten
Ich weiß,dassich dieses Skript verwenden kann,um der Fußzeileetwas hinzuzufügen:
Aber wiegebe ich das verwendete Skript an? erfordert die Ausführung vonjquery .