Verwendung von jquery und wp_enqueue_script

Lesezeit: 6 Minuten

Benutzer-Avatar von Jerry
Jerry

Ich habe eine ganze Weile damit verbracht, das herauszufinden. Ich versuche, ein Skript hinzuzufügen, das eine externe Jquerylibrary benötigt. Ich kann es zum Laufen bringen, indem ich mein Skript zwischen Skripttags einfüge, aber ich verstehe, dass dies nicht der richtige Weg ist, und es bricht ein anderes Skript auf der Website.

Ich habe heute Abend ziemlich viel Zeit damit verbracht, herauszufinden, wie ich das Skript richtig hinzufügen kann, und ich bekomme es einfach nicht hin.

Ich verstehe, dass so etwas der richtige Weg ist, um das Skript einzureihen:

function my_scripts_method() {
wp_register_script( 'jquery', 'http://code.jquery.com/jquery-1.9.1.js');
wp_enqueue_script( 'jquery' );
}
add_action('wp_enqueue_scripts', 'my_scripts_method');

Meine Hauptfrage ist, wie schreibe ich meine Funktionen, damit sie die Bibliothek aufruft, und gleichzeitig ausfallsicher, damit sie nur einmal geladen wird und nicht mit anderen Skripten abstürzt? Dies ist das Skript:

$(document).ready(function () {


$("#menu-item-16").hover(




          function () {
                  $('body').css("background", "#ff9900");
              }, 
              function () {
                $('body').css("background", "#ccc");
             }
            );

            $("#menu-item-17”).hover(
              function () {
                  $('body').css("background", "red");
              }, 
              function () {
                  $('body').css("background", "#ccc");
              }
            );

            $("#menu-item-18”).hover(
              function () {
                  $('body').css("background", "yellow");
              }, 
              function () {
                  $('body').css("background", "#ccc");
              }
            );
        });

Bearbeiten:

Zweite Frage, mehrere Bibliotheken und ein Stylesheet.

Wie oben gesagt, habe ich ein etwas komplexeres Skript, mit dem ihr mir vielleicht helfen könnt.

Ich habe diesen Code jetzt im Header und es funktioniert.

   `<link rel="stylesheet" type="text/css" href="https://stackoverflow.com/wp-content/themes/neighborhood/js/jquery.fullPage.css" />

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js">     </script> 
 <script type="text/javascript" src="/wp-content/themes/neighborhood/js/vendors/jquery.slimscroll.min.js"></script>

<script type="text/javascript" src="/wp-content/themes/neighborhood/js/jquery.fullPage.js"></script>



<script>
 $(document).ready(function() {
$.fn.fullpage({
    verticalCentered: true,
     resize : true,
    slidesColor : ['#AF1700', '#359973', '#F46321', '#A6C7DB'],
    scrollingSpeed: 700,
    easing: 'easeInQuart',
    menu: false,
    navigation: false,
    navigationPosition: 'right',
    navigationTooltips: ['firstSlide', 'secondSlide'],
    slidesNavigation: true,
    slidesNavPosition: 'bottom',
    loopBottom: false,
    loopTop: false,
    loopHorizontal: true,
    autoScrolling: true,
    scrollOverflow: true,
    css3: false,
    paddingTop: '3em',
    paddingBottom: '10px',
    fixedElements: '#element1, .element2',
    normalScrollElements: '#element1, .element2',
    keyboardScrolling: true,
    touchSensitivity: 15,
    continuousVertical: false,
    animateAnchor: false, 
    setScrollingSpeed: 1000,



});
});    

 </script>

`

Aus meinen neu gewonnenen Erkenntnissen habe ich Folgendes versucht, und es hat nicht funktioniert:

`

function fullpage() {     wp_enqueue_script('jquery');  

wp_register_style( ’fullpage-css', get_template_directory_uri() . '/js/jquery.fullPage.css','','', 'screen' );   
wp_register_script( 'jquery.1.8.3', get_template_directory_uri() . 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js', array('jquery'),'',true  ); 
 wp_register_script( 'jquery.1.9.1', get_template_directory_uri() . 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js', array('jquery'),'',true  ); 

 wp_register_script( 'fullpage', get_template_directory_uri() . '/js/jquery.fullPage.js', array('jquery'),'',true  ); 
 wp_register_script( 'fullpagecode', get_template_directory_uri() . '/js/fullpagecode.js', array('jquery'),'',true  ); 
 wp_register_script( 'slimscroll', get_template_directory_uri() . '/js/vendors/jquery.slimscroll.min.js', '', null,''  ); 

wp_enqueue_style( 'fullpage-css' ); // Enqueue our stylesheet

wp_enqueue_script( 'jquery.1.8.3' );  // Enqueue our first script

 wp_enqueue_script( 'jquery.1.9.1' ); // Enqueue our second script

 wp_enqueue_script( 'fullpage' );  // Enqueue our third  script

wp_enqueue_script( 'fullpagecode' ); // Enqueue fourth script

 wp_enqueue_script( ’slimscroll’ ); // Enqueue fifth script

  }add_action( 'wp_enqueue_scripts', ’fullpage’ ); `

  • Dies ist der Code, den Sie für Ihre Website verwenden? Es hat einige Tippfehler zu ersetzen mit diesem "

    – Rahil Wazir

    22. Februar 2014 um 0:51 Uhr

Benutzeravatar von hyperdrive
Hyperantrieb

Führen Sie Ihre jquery nicht in einem Skript aus. Dadurch werden andere Skripte in WordPress beschädigt.

Erstellen Sie eine .js-Datei (z. B. example.js und legen Sie diese in Ihrem Themenordner unter einem /js-Verzeichnis ab) und fügen Sie sie wie folgt in Ihre functions.php-Datei ein.

function theme_styles() {
    wp_register_style( 'fullpage-css', get_template_directory_uri() . '/css/jquery.fullPage.css' );   
    wp_enqueue_style( 'fullpage-css' ); 
}
add_action('wp_enqueue_scripts', 'theme_styles');

function theme_scripts() {
    wp_register_script( 'fullpage', get_template_directory_uri() . '/js/jquery.fullPage.js', array('jquery'),'1.0.0',true  ); 
    wp_enqueue_script( 'fullpage' );
    wp_register_script( 'fullpagecode', get_template_directory_uri() . '/js/fullpagecode.js', array('jquery'),'1.0.0',true  ); 
    wp_enqueue_script( 'fullpagecode' );
    wp_register_script( 'slimscroll', get_template_directory_uri() . '/js/vendors/jquery.slimscroll.min.js', array('jquery'), null, true  );
    wp_enqueue_script( 'slimscroll' );
}
add_action('wp_enqueue_scripts', 'theme_scripts');

wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );

$src ist der Pfad zur js-Datei. $deps ist, wo Sie definieren, dass dieses Skript jquery erfordert, wie hier. array(‘jquery’)

Sie müssen jquery nicht einbinden, da dies in WordPress integriert ist.

Wickeln Sie dann in Ihrer .js-Datei in Ihrem Designordner Ihren Code in einen No Conflict-Wrapper ein. Die Verwendung von $() gibt ansonsten undefiniert zurück.

jQuery(document).ready(function($) {

    $("#menu-item-16").hover(
          function () {
                  $('body').css("background", "#ff9900");
          }, 
          function () {
            $('body').css("background", "#ccc");
         }
    );

    $("#menu-item-17").hover(
        function () {
          $('body').css("background", "red");
        }, 
        function () {
          $('body').css("background", "#ccc");
        }
    );

    $("#menu-item-18").hover(
        function () {
          $('body').css("background", "yellow");
        }, 
        function () {
          $('body').css("background", "#ccc");
        }
    );

});

  • Danke für die Antwort! Folgt aber immer noch nicht (Sorry). Soll ich eine .js-Datei mit dem Code jQuery(document).ready(function($) {… erstellen und sie dann innerhalb der Funktion verlinken, die ich in functions.php platziere?Es ist nicht erforderlich, das Skript im Kopf aufzurufen und so dann?Danke nochmal!

    – Jerry

    22. Februar 2014 um 1:37 Uhr


  • Erstellen Sie eine js-Datei mit dem jQuery()-Code. Legen Sie es in wp-content/themes/your-theme/js/. Ich habe gerade dieses wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); um Ihnen zu zeigen, wie die Aktion funktioniert. Verwenden Sie die erste. get_template_directory_uri() . ‘/js/example.js’ Dies ist der Verweis auf Ihr Designverzeichnis und die Javascript-Datei.

    – Hyperantrieb

    22. Februar 2014 um 1:41 Uhr

  • Das war’s? Wickeln Sie den Code in eine .js-Datei ein, die Sie mit der wp_enqueue_script-Funktion verknüpfen, die Sie in der functions.php platzieren, und Sie müssen sie nicht im Header aufrufen. Ok, ich verstehe. Und ja, ich habe etwas zu spät verstanden, was Sie mit dieser Codezeile gemeint haben. Dies unterbricht jedoch das andere Skript, und dieses funktioniert nicht richtig, wird jedoch ausgeführt. Es ist ein Anfang. Vielen Dank für die Geduld.

    – Jerry

    22. Februar 2014 um 1:56 Uhr

  • Hey das hat geklappt! Es funktioniert immer noch nicht mit meinem anderen Skript, aber ich habe das im Header geladen und jetzt weiß ich endlich, wie ich das richtig mache. Danke vielmals!

    – Jerry

    22. Februar 2014 um 2:19 Uhr

  • Eine zweite Frage hinzugefügt, wenn es Ihnen nichts ausmacht. Bitte weisen Sie darauf hin, was ich hier falsch mache. Fullpagecode ist die .js-Datei mit dem Funktionscode $(document).ready(. Danke!

    – Jerry

    22. Februar 2014 um 3:10 Uhr

1428820cookie-checkVerwendung von jquery und wp_enqueue_script

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy