jquery WP-Intern vs. Extern

  • Mir wurde ein WP-Theme zur "Überholung" zugeschickt.
    Dieses Theme bringt jQuery mit und im Header entsprechend referenziert wird via:

    PHP
    <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery.js"></script>


    Da WP diesen jQuery-Kram von Hause aus mitbringt, fand ich diese Zeile überflüssig und
    wollte jQuery über [FONT="Courier New"]functions.php[/FONT] referenzieren, ähnlich diesem:

    Code
    function theme_functions_init() {
            wp_enqueue_script('jquery');
     }
     add_action( 'init', 'theme_functions_init' );


    Die Themefunktionen funktionieren so nicht mehr, durch eine zusätzliche Zeile im jQuery-Script von WP die nicht (!) dem originalem komprimiertem Script entspricht.

    Code
    jQuery.noConflict();


    Mir bleibt hier nichts anderes übrig als den jQuery-Kram zweimal zu laden ? Oder gibt es eine bessere Lösung !

    Darauf gestossen bin ich, weil noch diverse Plugins ebenfalls wieder laufen sollten, die ebenso das interne WP-jQuery
    beanspruchen und es ebenso referenzieren über:

    PHP
    <?php wp_head(); ?>


    Wenn ich mir jetzt vorstelle, dass es noch mehr Plugins gibt die das gleiche tun (wollen).

    Wie oft habe ich dann diesen jQuery-Kram im Header stehen ?


    Es sei noch erwähnt das ich keine Freund von jQuery bin und entsprechend wenig damit befasse.
    Denn dieses "geslide", verschiebe, und diese ganze Pseudointeraktivität nervt mich.

    "Whoever controls the media, controls the mind." J.Morrison

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • In jQuery ändern sich ab und an auch mal Funktionen. Evtl. ist die dem Theme beiliegende eine ältere und dementsprechend muss evtl. was im Script geändert werden. War bei mir auch so, hab diese Prozedur auch hinter mir. Leider kenn ich mich damit aber auch nicht so besonders aus, mir hat Google geholfen. Also falls es eine ältere jQuery ist hilft es vielleicht wenn Du mal einen Beispielcode einer Funktion die nicht mehr geht postest.

    Ach ja desweiteren kann es sein, das Du weitere Scripts includieren musst wenn Du die WP eigenen verwendest.

    ui.core.js
    ui.tabs.js
    ...

    Bei mir musste ich noch folgendes ändern:

    HTML
    <script type="text/javascript">
    jQuery(document).ready(function($) {
    $(function() {$("#tabs").tabs();});
    });
    </script>

    Wie die Funktion dafor aussah weiß ich nicht mehr. Es ging dabei um tabs.

  • In jQuery ändern sich ab und an auch mal Funktionen. Evtl. ist die dem Theme beiliegende eine ältere und dementsprechend muss evtl. was im Script geändert werden. ( ... )

    Die WP-interne jQuery-Version und die externe Theme-jQuery-Version, eine akt. Version, unterscheiden sich exakt um diese eine Zeile:

    Code
    jQuery.noConflict();


    Entferne ich diese, funktioniert es auch mit der WP-Version, was das Ziel wäre, wäre da nicht WP denn ich verschiebe das Problem nur bis zum nächsten WP-Update.

    "Whoever controls the media, controls the mind." J.Morrison

  • Hallo,

    also ich benutze bzw. teste in letzter Zeit vieles mit jQuery und WordPress und nutze dabei ebenfalls die in WP mitgelieferte jQuery Version.

    Anfangs tat ich mich auch etwas schwer, denn alle Scripte die Lokal auf einfachen HTML Seiten Funktionierten, gingen in WordPress aufeinmal nicht mehr.

    Mir ist auch schon des öfteren Aufgefallen das viele Programmierer die jQuery aus WordPress nutzen, aber nicht nach den WP Standarts arbeiten und Funktionen mit $ statt mit jQuery aufrufen.
    Eventuell liegt hier der Konflikt mit den Plugins oder jQuery Scripten im Theme/Plugin.

    Lg Fabian

  • Schau mal musste gerade eins ändern das auch ein eigenes jquery mitbrachte. Folgende Änderungen hab ich gemacht dann ging es auch mit dem WP eigenen:

    Alt:

    Neu:

    Vielleicht hilft Dir das ein wenig.

  • Danke, die Links und Tips haben etwas Licht ins Dunkle gebracht.
    Wenn jeder Theme- und Pluginschreiber sein eigenes jQuery-Zeug denkt mitbringen zu müssen, leuchtet zumindest der WP interne [FONT="Courier New"]no-conflict-mode[/FONT] ein.

    Oder den entsprechenden Umkehrschluss gezogen, die Theme- und Pluginentwickler arbeiten hier stümperhaft und nutzen vorhandene Resourcen nicht die als WP-Standard schon vorhanden sind, und/oder fragen zumindest nicht mal ab, ob jQuery schon eingebunden wurde, stattdessen wirds nochmal gnadenlos eingebunden.

    Für mich heisst das, Überzeugungsarbeit leisten und jQuery entgültig zu entsorgen. Komprimierte Scripts, wie diesen "Pagescroller", kann und will ich nicht anpassen, das käme einem neuschreiben gleich.

    "Whoever controls the media, controls the mind." J.Morrison

  • Danke für die Beiträge! Hatte/Habe auch Probleme mit jQuery im Theme. Werde mich nach Silvester mal dransetzen und versuchen mein Theme auch wieder ins Rennen zu schicken. Guten Rutsch allen!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!