it-swarm.com.de

Wie kann ich jQuery "aushängen"/aus der Registrierung entfernen, damit es nicht als Teil von wp_footer () aufgerufen wird?

Ich muss jQuery von meiner wp_footer() "aushängen" ... es wird automatisch aufgerufen und ich suche nach etwas, das ich zu functions.php hinzufügen kann, um zu verhindern, dass es ein zweites Mal in der Fußzeile aufgerufen wird (da ich es aufrufen muss) im Header)

bitte keine redaktionellen Kommentare darüber, warum das Aufrufen der Fußzeile besser ist

2
Brian

Sie möchten nicht die Registrierung aufheben das Skript; das würde es nicht verfügbar in die Warteschlange stellen. Vielmehr möchten Sie dequeue das Skript.

Sie haben zwei Möglichkeiten:

  1. Wenn Sie die Rückruffunktion kennen, über die wp_enqueue_script( 'jquery' ) aufgerufen wird, können Sie einfach remove_action( 'wp_footer', 'callback_function_name' ) aufrufen.
  2. Wahrscheinlicher ist, dass Sie die Rückruffunktion nicht kennen (oder jQuery wird von einem anderen Skript als Abhängigkeit in die Warteschlange gestellt). In diesem Fall können Sie sie direkt aus der Warteschlange entfernen, was Sie über wp_dequeue_script() tun würden.

z.B.

function theme_slug_dequeue_footer_jquery() {
     wp_dequeue_script( 'jquery' );
}
add_action( 'wp_footer', 'theme_slug_dequeue_footer_jquery', 11 );

Hinweis: Das Priorität ist wahrscheinlich ziemlich wichtig, da Sie sicherstellen müssen, dass Ihr Warteschlange Anruf ausgelöst wird nach dem Warteschlange Anruf.

Bearbeiten

Ich passe dieses Thema vom Standardthema TwentyEleven an. Es scheint, als ob es das Thema selbst ist, das WordPress bindet und kein Plugin. Ich habe in der default functions.php nachgesehen und sehe dort kein wp_enqueue_script (). Gibt es irgendwo anders, wo ich hinschauen sollte?

Sehen Sie sich zufällig die Showcase-Vorlage an (d. H. showcase.php )? Beachten Sie, dass ein benutzerdefiniertes Skript in die Warteschlange gestellt wird:

wp_enqueue_script( 'twentyeleven-showcase', get_template_directory_uri() . '/js/showcase.js', array( 'jquery' ), '2011-04-28' );

Es fügt jQuery zu seinem Dependents-Array hinzu, was bedeutet, dass WordPress zuerst jQuery und dann twentyeleven-showcase in die Warteschlange stellt. Das könnte also die Quelle der mysteriösen jQuery-Warteschlange sein.

(Es gibt auch einen wp_enqueue_script()-Aufruf in /inc/theme-options.php, aber ich glaube nicht, dass einer Ihre Front-End-Skripteinreihung beeinträchtigen würde.)

6
Chip Bennett

die Funktion zum Abmelden eines Skripts lautet:

wp_deregister_script('jquery');

Aber das Problem, das Sie haben, ist anders, wenn ich es richtig verstehe - Sie haben JQury ZWEIMAL enthalten, einmal in der Kopfzeile und einmal in der Fußzeile. Dies ist eine Plug-in- oder Design-Funktion, die nicht ordnungsgemäß ausgeführt wird. Sie werden ausdrücklich gebeten, die Fußzeile zu drucken. Möglicherweise möchten Sie das Problem besser identifizieren, da dies andere Probleme verursachen kann.

Beispiele für Hooks sind: (one init, one print_scripts)

function dl_register_common_js() {
wp_deregister_script('jquery');
}
//add_action('init', 'dl_register_common_js'); // will deregister from head
add_action('wp_print_scripts', 'dl_register_common_js');
1
krembo99