Einbinden von jQuery?

  • Hallo,
    ich versuche derzeit ein zweifaches einbinden von jquery zu verhindern. aber ich bekomme es einfach nicht gelöst. ich verwende die tabs von jqueryui und lade deshalb manuell die ganzen jquery dateien.

    irgendeine anwendung versucht aber auch die jquery.js zu laden. da dachte ich mir, spare ich die eigene variante und lasse das von wordpress erledigen.
    doch wenn ich nur die von wp_include/js/jquery/jquery.js nehme, kann er die tabs nicht mehr öffnen.

    habe auch vor kurzem davon gehört:

    PHP
    <?php wp_enqueue_script('jquery'); ?>


    doch allerdings passiert dann gar nichts :/
    ich hoffe es kann mir jemand weiterhelfen

    gruß
    Christian

    • 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

  • Diese Funktion wird hier näher erklärt:
    http://codex.wordpress.org/Function_Refer…_enqueue_script

    Wenn Du Scripte einbindest, die in WP schon enthalten sind, solltest Du sie nutzen. Um die JQuery-Tabs zu nutzen brauchst Du ja jQuery und das Tab-Plugin, also müsste der Aufruf in Deinem Theme so aussehen:

    PHP
    <?php
    function my_init_method() {
      wp_enqueue_script('jquery');
      wp_enqueue_script('jquery-ui-tabs');
    }
    add_action('init', my_init_method);
    ?>

    Weitere Scriptnamen siehe die verlinkte Seite. Das mit dem Vermeiden des doppelten Aufrufs klappt natürlich nur, wenn der andere Script-Aufruf diese Funktion auch nutzt. ;-)

    Edit: Ich hatte ursprünglich oben "jquery-ui-tab" geschrieben. Richtig muss es heißen "jquery-ui-tabs".

    Einmal editiert, zuletzt von Ammaletu (13. Oktober 2009 um 00:31)

  • PHP
    <?php
    function my_init_method() {
      wp_enqueue_script('jquery');
      wp_enqueue_script('jquery-ui-core');
      wp_enqueue_script('jquery-ui-tab');
    }
    add_action('init', my_init_method);
    ?>

    habe deine zeilen in den head meines themes gesetzt. trotzdem werden die ui dateien nicht geladen (bei wp_includes existieren sie schon ;) )
    ich verstehe nur nicht warum. :(

  • Probier das mal in die functions.php zu setzen, da gehört es eher hin (oder in der header.php möglichst weit nach oben). Es kann sein, dass Du es in der header.php zu spät eingebunden hast, wenn der entsprechende Hook schon aufgerufen worden ist, oder es fehlt im Theme was. Hast Du den wp_head-Aufruf in der header.php stehen?

  • hab es in den header eingebunden, natürlich bevor die funktionen aufgerufen werden :) und danach kommt der wp_head.
    deswegen frag ich mich ja warum das nicht klappt :(

  • Mit einer Einbindung in die header.php kann ich leider nicht dienen. Ich hab´s bei mir auch über die functions.php gelöst. Falls es jemandem hilft... Ich hab folgendes dort eingefügt:

    PHP
    <?php
    $themes = get_themes(); 
    $script = $themes[get_current_theme()]['Template Dir'] . "/js/jquery.idTabs.min.js";
    if ( file_exists(WP_CONTENT_DIR . $script) ) {
      wp_enqueue_script('jquery.idTabs.min.js', WP_CONTENT_URL . $script, array('jquery'));
    }

    Die Datei jquery.idTabs.min.js muss dann im Verzeichnis wp-content/themes/THEMEORDNER/js/ liegen.

  • So, das musste ich jetzt doch noch mal testen. Das Einbinden der Scripte auf diesem Weg klappt einwandfrei, allerdings hatte ich weiter oben leider einen Fehler eingebaut: Es muss "jquery-ui-tab[COLOR=Red]s[/COLOR]" heißen. Sorry! :-/

    Davon abgesehen muss das Theme die Aufrufe für wp_head und wp_footer enthalten. Die jQuery-Hauptdatei wird im Header eingebunden, die jQuery-Plugins im Footer. Das ganze klappt bei mir, wenn der Code in der functions.php steht, nicht jedoch wenn er in der header.php steht (auch nicht ganz oben). So, hier also nochmal zum Kopieren der richtige PHP-Code.

    PHP
    function my_init_method() {
      wp_enqueue_script('jquery');
      wp_enqueue_script('jquery-ui-core');
      wp_enqueue_script('jquery-ui-tabs');
    }
    add_action('init', 'my_init_method');

    P.S.: Wieder mal zu viele Sachen gleichzeitig gemacht, die beiden vorherigen Antworten hatte ich noch nicht gesehen als ich das getestet und das hier geschrieben habe. ;-)

    Einmal editiert, zuletzt von Ammaletu (13. Oktober 2009 um 00:33)

  • @infected Aber da handelt es sich doch dann auch um was zusätzliches, oder steh ich jetzt auf dem Schlauch?

    Was heißt zusätzlich? Die jquery Tabs sind doch auch ein zusätzliches "Plugin" für jquery. Ich benutze stattdessen nur die IDTabs. Ansonsten funktionierts genauso.

Jetzt mitmachen!

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