1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Jquery in Footer laden statt im header

Dieses Thema im Forum "Allgemeines" wurde erstellt von Luks, 15. November 2014.

Schlagworte:
  1. Luks

    Luks Well-Known Member

    Registriert seit:
    4. Januar 2013
    Beiträge:
    45
    Zustimmungen:
    0
    Hallo,

    Jquery wird ja bei Wordpress standardmäßig im <head> geladen. Aus Performance-Gründen möchte ich es jedoch im Footer laden. Hat das schon jemand erfolgreich umsetzen können? Habe hierzu folgenden Code in die functions.php eingefügt. Das Script wird jedoch weiter im Header geladen. Nutze Wordpress 4.0

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  2. gericoach

    gericoach Well-Known Member

    Registriert seit:
    12. August 2008
    Beiträge:
    7.193
    Zustimmungen:
    0
    wo steht denn da, dass jquery in den footer soll? ich lese da nur: deregistrieren und dann wieder registrieren. was soll das bringen?
    Hast Du es in den footer gepackt und im header gelöscht?
     
  3. maxe

    maxe Well-Known Member
    Ehrenmitglied

    Registriert seit:
    1. Mai 2008
    Beiträge:
    19.581
    Zustimmungen:
    277
    @gericoach
    der letzte Parameter bestimmt $in_footer=true ;)

    @Luks
    ich habe es selbst mit
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    und auch mit
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    nie hinbekommen, bin jetzt einen Umweg gegangen:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Wäre aber auch an einer korrekten Lösung interessiert.
     
  4. gericoach

    gericoach Well-Known Member

    Registriert seit:
    12. August 2008
    Beiträge:
    7.193
    Zustimmungen:
    0
    @maxe: ooops, da hab ich wohl was übersehen...
     
  5. Luks

    Luks Well-Known Member

    Registriert seit:
    4. Januar 2013
    Beiträge:
    45
    Zustimmungen:
    0
    Hallo,

    hatte diesen Thread vor einem halben Jahr begonnen. Leider war er wohl ergebnislos eingeschlafen. Das Thema

    Jquery in Footer laden statt im header


    ist jedoch für mich (und wahrscheinlich auch für viele andere) immer noch aktuell. Würde gerne das Thema nochmals anstoßen. Konnte es jemand bisher erfolgreich umsetzten, oder geht es schlicht einfach nicht?
     
  6. SirEctor

    SirEctor Well-Known Member
    Ehrenmitglied

    Registriert seit:
    28. Oktober 2008
    Beiträge:
    12.361
    Zustimmungen:
    427
    Hast du den Umweg von maxe gelesen und getestet?
     
  7. Monika

    Monika Well-Known Member
    Ehrenmitglied

    Registriert seit:
    4. Juni 2005
    Beiträge:
    14.126
    Zustimmungen:
    2
    funktioniert verdammt gut :)
    nutzt aber nichts, wenn ein Plugin unbedingt jquery oben braucht => slider etc... sind halt manche so gecodet ...
    ich übernehm also keine Haftung, dass da was krachen kann oder so ....

    auch keine Haftung für meine Kommentare in dieser Funktion :)

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    hast du individuelles jquery im Footer, dann sollte wp_footer unbedingt vor diesem stehen...
     
  8. Luks

    Luks Well-Known Member

    Registriert seit:
    4. Januar 2013
    Beiträge:
    45
    Zustimmungen:
    0
    Der Vorschlag von maxe funktioniert mit allen Javascripts, außer den jquery, die bleiben leider im head stehen.
    @Monika Funktioniert leider gar nicht bei mir. Die jquery bleiben im head stehen + Fehlermeldung.
     
  9. maxe

    maxe Well-Known Member
    Ehrenmitglied

    Registriert seit:
    1. Mai 2008
    Beiträge:
    19.581
    Zustimmungen:
    277
    damals hatte ich es, wie Monika es jetzt vorgeschlagen hat, schon getestet. Lief nicht. Heute teste ich es wieder, läuft.
    War vermutlich ähnlich, wie das query_posts() Problem, was derzeit einige Nutzer haben.
    Verstehen muss ich das nicht!
     
  10. Monika

    Monika Well-Known Member
    Ehrenmitglied

    Registriert seit:
    4. Juni 2005
    Beiträge:
    14.126
    Zustimmungen:
    2
    welche Fehlermeldung hast du?

    nutzt du irgendein Plugin, dass jquery im html header braucht?
    (oder glaubt zu brauchen)

    oder andersrum...
    hast du es schon ohne aktivierte Plugins versucht?

    holt sich gar dein Theme unbedingt jquery in den header? => slider, tabs weiß ich was noch alles
     
  11. Monika

    Monika Well-Known Member
    Ehrenmitglied

    Registriert seit:
    4. Juni 2005
    Beiträge:
    14.126
    Zustimmungen:
    2
    ich hatte massive Probs bei einem ChildTheme,
    bis ich kapierte, dass die die Ordner völlig woanders hingeschickt hatten,
    also wenn der Pfad nicht stimmt, gehts so natürlich nicht ...
    hat viele graue Haare gekostet bis ich endlich mit die wp-config und htaccess angesehen hatte ...
     
  12. Luks

    Luks Well-Known Member

    Registriert seit:
    4. Januar 2013
    Beiträge:
    45
    Zustimmungen:
    0
    Hallo Monika,

    es ist das Slider-Dropdown-Menu für die mobile Ansicht, was jquery benötigt. Sonst öffnet es sich nicht. Am besten wäre natürlich, ich finde eine Möglichkeit, dass es sich ohne Javascript ein- und ausklappen lässt. Aber da kenne ich mch zu wenig aus.

    Andere Frage: was bedeuten eigentlich dies Zahlen in der Funktion, also in diesem Fall die 9 ?
    remove_action('wp_head', 'wp_print_head_scripts', 9);
     
  13. Monika

    Monika Well-Known Member
    Ehrenmitglied

    Registriert seit:
    4. Juni 2005
    Beiträge:
    14.126
    Zustimmungen:
    2
    das ist hier sehr einfach erklärt

    https://wp-buddy.com/de/wordpress-plugin-development/die-remove_action-funktion/
     
  14. timkaufmann

    timkaufmann Well-Known Member

    Registriert seit:
    11. Januar 2015
    Beiträge:
    64
    Zustimmungen:
    0
    Ich habe das jetzt schon mehrfach gemacht, unter anderem bei www.perfekt-schminken.de und bei www.hochzeitsfotograf-luzern.ch. Anlass war immer Google Pagespeed. Praktische Auswirkungen: Enorm, erst recht in Verbindung mit asynchronem Laden von JavaScript.


    Mal zu den konkreten Erfahrungen:


    Wenn man mit wp_register_script() ein Script registriert, kann man nicht nur sagen, wo es hin soll (head, foot), sondern auch, von welchen anderen Scripts es abhängt. Man kann jQuery deregistrieren und neu für den foot registrieren - wenn ein Plugin/Theme jQuery als Abhängigkeit für eines seiner Scripts listet und sein Script im head lädt, dann lädt auch jQuery im head.


    Manchmal gibt es ja durchaus Gründe dafür, JavaScript im head zu laden. In der überwiegenden Zahl der Fälle, denen ich begegnet bin, funktionieren Scripte aber auch völlig problemlos im foot. Aber dem Autor des Plugins/Themes ist die Problematik vermutlich nicht bewusst, wp_register_script() hat head als default und dann landet eben alles im head. Trotzdem sollte man sich ungefähr angucken, was die Scripts so tun, bevor man sich die Mühe macht, sie in den Head zu verschieben.


    Wie kann man nun verschieben?


    1) Seltener Glücksfall: Das Plugin selbst bietet eine Option, sein JavaScript im foot auszugeben. Also erst mal die Plugin-Optionen checken.


    2) Man schaut sich an, welche Scripts ein Plugin registriert und hängt diese - beispielsweise aus der functions.php heraus - in den foot. Das ist nicht so simpel. Wenn das Plugin konform zum Codex entwickelt wurde, findet man die entsprechenden Stellen im Code natürlich über die Suche nach wp_register_script(), beziehungsweise das Ergebnis davon in $wp_scripts. Es gibt aber auch Plugins, die ihre JavaScripts einfach per echo irgendwo - sorry - hinrotzen. So was habe ich auch schon gelöst, aber eher "brutal" mit ob_buffer(), DomNode und Xpath. Schließlich will ich das Plugin selbst ja nicht verbiegen.

    3) Gute Hilfe leistet auch das Plugin bwp_minify. Es wird aber alleine in der Regel nicht reichen.

    Fazit: Je mehr Plugins, um so mehr Ärger, wenn man JavaScript in den Footer verschieben will. Die Upgrade-Sicherheit ist allerdings höher als man angesichts der Komplexität der Eingriffe erst mal vermuten würde.
     
    #14 timkaufmann, 22. April 2015
    Zuletzt bearbeitet: 22. April 2015
  15. Presskopp

    Presskopp Well-Known Member

    Registriert seit:
    18. März 2011
    Beiträge:
    859
    Zustimmungen:
    0
    Angenommen ich hätte das hier im Code
    wp_register_script('jquery-core', 'https://ajax.googleapis.com/ajax/libs/jquery/jquery-1.12.3.min.js', TRUE, '1.12.3');
    (derzeit nicht verfügbar)


    Kann mir mal bitte jemand sagen, wie man korrekt prüft, ob jquery (core) schon registriert(!) ist
    1) if ( ! jQuery )
    2) if ( !wp_script_is('jquery','registered') )
    3) if ( !wp_script_is('jquery-core','registered') )
    4) ganz anders


    Danke.
     
  16. Monika

    Monika Well-Known Member
    Ehrenmitglied

    Registriert seit:
    4. Juni 2005
    Beiträge:
    14.126
    Zustimmungen:
    2
    was magst damit erreichen?

    wozu prüfen, ob jQery schon da ist und wieso undwozu ein externes Script

    das gibt massig Probleme, habe grad akut so eine SIte wo schlussendlichst das hauseigene jQuery geladen wird und das externe

    weil das hauseigene brauchen Plugins, die berufen sich ja da drauf,...
    wenn das nicht klappt krachts dann hint und vorn,
     
  17. Presskopp

    Presskopp Well-Known Member

    Registriert seit:
    18. März 2011
    Beiträge:
    859
    Zustimmungen:
    0
    Hallo Monika, danke für die Warnung, das ist mir alles klar, ich spiele halt gerade damit herum und komme an dieser bestimmten Stelle (trotz google) nicht voran. Also alles was ich gerne wissen möchte, ist die Frage, wie man korrekt prüft, ob jquery (core) schon registriert(!) ist, also ob der Aufruf erfolgreich war (was er, wie gesagt, derzeit nicht sein kann, da google die Datei noch nicht anbietet)
     
  18. Presskopp

    Presskopp Well-Known Member

    Registriert seit:
    18. März 2011
    Beiträge:
    859
    Zustimmungen:
    0
    Argh, sehe gerade dass der code falsch ist, richtig:
    wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/jquery-1.12.3.min.js', TRUE, '1.12.3');
     
  19. Presskopp

    Presskopp Well-Known Member

    Registriert seit:
    18. März 2011
    Beiträge:
    859
    Zustimmungen:
    0
    OMG, bin total durcheinander geraten - bitte (fast) alles vergessen..
     
  20. Monika

    Monika Well-Known Member
    Ehrenmitglied

    Registriert seit:
    4. Juni 2005
    Beiträge:
    14.126
    Zustimmungen:
    2
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden