it-swarm.com.de

Core-jQuery in der Fußzeile einreihen?

Ich habe dies in meiner functions.php-Datei und kann jQuery nicht in die Fußzeile laden. Die Datei includes wird jedoch in die Fußzeile fine geladen. Was muss ich sonst noch tun?

function starter_scripts() {
    wp_enqueue_style( 'starter-style', get_stylesheet_uri() );

    wp_enqueue_script( 'jquery', '', '', '', true );

    wp_enqueue_script( 'includes', get_template_directory_uri() . '/js/min/includes.min.js', '', '', true );
}
add_action( 'wp_enqueue_scripts', 'starter_scripts' );
19
Desi

Dazu müssen Sie zuerst Ihr jQuery-Skript abmelden und sich dann erneut registrieren. Wenn Sie jQuery verwenden, das mit WordPress geliefert wird, ist das Folgende die Funktion, nach der Sie suchen.

function starter_scripts() {
    wp_deregister_script( 'jquery' );
    wp_register_script( 'jquery', includes_url( '/js/jquery/jquery.js' ), false, NULL, true );
    wp_enqueue_script( 'jquery' );

    wp_enqueue_style( 'starter-style', get_stylesheet_uri() );
    wp_enqueue_script( 'includes', get_template_directory_uri() . '/js/min/includes.min.js', '', '', true );
}
add_action( 'wp_enqueue_scripts', 'starter_scripts' );

Wenn Sie eine von Google CDN gehostete Version von jQuery verwenden, teilen Sie mir mit, dass ich diesen Code für die Google CDN-URL ändern werde.

19
Robert hue

Eine bessere Lösung:

add_action( 'wp_default_scripts', 'move_jquery_into_footer' );

function move_jquery_into_footer( $wp_scripts ) {

    if( is_admin() ) {
        return;
    }

    $wp_scripts->add_data( 'jquery', 'group', 1 );
    $wp_scripts->add_data( 'jquery-core', 'group', 1 );
    $wp_scripts->add_data( 'jquery-migrate', 'group', 1 );
}

Warum ist es besser als die akzeptierte Antwort IMO

  1. Ändert es im Kern, nicht zu einem späteren Zeitpunkt, wenn andere Dinge bereits damit zu tun hatten.
  2. Die Versionszeichenfolge wurde beibehalten und nicht entfernt!
  3. Die Registrierung eines Skripts wird nicht aufgehoben und erneut registriert, sondern es wird nur der Gruppenwert festgelegt, der im Wesentlichen der gleiche ist, als würde das Skript mit $footer = true registriert.

Über dies nicht an den Administrator zu tun

Wenn Plugins Inline-JQuery zu wp_head hinzufügen, schlägt dies fehl, wenn JQuery zu diesem Zeitpunkt nicht geladen wird. Ich schlage daher vor, dies zu vermeiden, bis Millionen Ihre Website bearbeiten und Sie versuchen, die Leistung Ihres Administrators zu optimieren. Dies gilt auch für das Frontend. Achten Sie daher auf schlecht codierte Designs oder Plugins, die mithilfe von Inline-jQuery-Code eine Abfrage im Kopf voraussetzen.

Darüber nicht funktioniert

Sie müssen sich darüber im Klaren sein, dass, wenn ein anderes Skript in den Head geladen wird, dessen Abhängigkeiten jQuery enthalten, jQuery auch direkt vor sich selbst in den Head geladen wird. Und das ist gut und zu erwarten, der Grund, warum das System wp_enqueue existiert.

16
NextGenThemes
add_action("wp_enqueue_scripts", "myscripts");

function myscripts() { 
   wp_enqueue_script( 'jquery' , '', array(), true); //true for footer
   wp_enqueue_script( 'someScript-js', 'https://domain.com/someScript.js' , '', '', true );
}
0
samjco