Warum kann eine SlideShow (erstellt mit JQuery FlexSlider) nicht funktionieren, wenn ich sie in form functions.php lade, aber funktioniere, wenn ich sie aus meiner footer.php-Datei lade?

Ich habe folgende Situation:

Ich führe dieses reine HTML-Thema (das BootStrap-CSS-Framework verwendet) in ein WordPress-Theme.

Dies ist das ursprüngliche reine HTML-Demothema (ich habe den gesamten Quellcode, weil es ein herunterladbares Beispiel ist): http://www.html.it/guide/img/bootstrap/demo/home.html

Und das ist mein persönliches WP-Thema, an dem ich gerade arbeite: http://onofri.org/WP_BootStrap/

Wie Sie sehen können, ist der einzige Unterschied von der ursprünglichen Demo-Website und meinem persönlichen WP-Thema, dass in der zweiten die SlideShow in der Kopfzeile (mit dem FlexSlider JQuery Plugin) nicht gezeigt wird.

Ich habe folgende Operationen durchgeführt:

1) In meiner footer.php Datei habe ich das Laden von JavaScript deaktiviert, indem ich sie kommentiere und wp_footer () anrufe , auf folgende Weise:

<!--      -->   

2) Ich habe den folgenden Code in meine functions.php-Datei eingefügt, um das gesamte vorherige JavaScript unter Verwendung des WP-Standardwegs zu laden:

 /* Function automatically executed by the hook 'load_java_scripts': * 1) Load all my JavaScripts */ function load_java_scripts() { // Load JQuery: wp_enqueue_script('jquery'); // Load FlexSlider JavaScript wp_enqueue_script('flexSlider-js', get_template_directory_uri() . '/assets/plugins/flexslider/jquery.flexslider.js', array('jquery'), 'v2.1', true); // Load bootstrap.min.js: wp_enqueue_script('bootstrap.min-js', get_template_directory_uri() . '/assets/bootstrap/js/bootstrap.min.js', array('jquery'), 'v3.0.3', true); // Load FancyBox: wp_enqueue_script('fancy-js', get_template_directory_uri() . '/assets/plugins/fancybox/jquery.fancybox.pack.js', array('jquery'), 'v2.1.5', true); // Load scripts.js: wp_enqueue_script('myScripts-js', get_template_directory_uri() . '/assets/js/scripts.js', array('jquery'), '1.0', true); // Load Modernizer: wp_enqueue_script('myodernizer-js', get_template_directory_uri() . '/assets/js/modernizr.custom.js', array('jquery'), '2.6.2', true); } add_action('wp_enqueue_scripts', 'load_java_scripts'); 

Wie Sie sehen können, setze ich alle Skripte auf JQuery, so dass JQuery zuerst geladen wird.

Aber wie Sie sehen können, die jquery und \ oder die jquery.flexslider.js kann nicht funktionieren.

Das Seltsame ist, dass ich das Ende meiner footer.php Datei so ändere , dass die SlideShow richtig angezeigt wird:

       

Also was fehlt mir? Was könnte das Problem sein?

Beim Betrachten des Quellcodes meiner Website (in FireFox) scheint mir, dass das ganze JavaScript geladen ist, aber nicht funktionieren kann, die SlideShow nicht erscheint.

Was ist der Unterschied?

Solutions Collecting From Web of "Warum kann eine SlideShow (erstellt mit JQuery FlexSlider) nicht funktionieren, wenn ich sie in form functions.php lade, aber funktioniere, wenn ich sie aus meiner footer.php-Datei lade?"

Wie @Milo sagte, lädt WP jQuery in keinem Konfliktmodus, so dass die Verknüpfung $ für jQuery nicht verfügbar ist. Sie sollten die $ Variable für jQuery nicht in WordPress verwenden. Wie Sie sagten, sind Sie nicht in jQuery, ich gebe nur den Code unter … Versuchen Sie es.

 jQuery(function ($) { $(window).load(function() { $('#main-slider').flexslider({ animation: "slide", useCSS: false, pauseOnHover: true }); }); }) 

Wenn Sie ein Skript in die footer.php einfügen, haben Sie jQuery von cdn geladen. So ist $ verfügbar und deshalb hat es funktioniert.

Update : Was ich meine ist, wenn Sie verwendet haben

  

Ihre Quelle für jQuery.js ist anders als WP.

Wenn Sie verwenden

  // Load JQuery: wp_enqueue_script('jquery'); 

jQuery wird aus dem WP-Bundle geladen.