पाद लेख में स्क्रिप्ट नहीं कर सकते हैं?


10

वर्डप्रेस कोडेक्स कहता है :

( पुराना कोडेक्स पेज )

$ in_footer

(बूलियन) (वैकल्पिक) आम तौर पर लिपियों को अनुभाग में रखा जाता है। यदि यह पैरामीटर सही है, तो स्क्रिप्ट को नीचे रखा गया है। इसके लिए उपयुक्त स्थान पर थीम को wp_footer () हुक की आवश्यकता होती है। ध्यान दें कि आपको wp_head चलाने से पहले अपनी स्क्रिप्ट को एंक्ल्यू करना होगा, भले ही उसे पाद लेख में रखा गया हो। (वर्डप्रेस 2.8 में नया) डिफ़ॉल्ट: गलत

इसलिए मैंने trueप्रत्येक स्क्रिप्ट के बाद जोड़ा src path:

/**
     * JavaScript
     */

    function my_scripts_method() {
        wp_deregister_script( 'jquery' );
        wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js', true );
        wp_enqueue_script( 'jquery' );
    }

    add_action('wp_enqueue_scripts', 'my_scripts_method');

    function media_queries_script() {
        wp_register_script( 'mediaqueries', get_template_directory_uri() . '/js/css3-mediaqueries.js', true );
        wp_enqueue_script( 'mediaqueries' );
    }

    add_action('wp_enqueue_scripts', 'media_queries_script');

    function custom_script() {
        wp_register_script( 'custom', get_template_directory_uri() . '/js/custom.js', true );
        wp_enqueue_script( 'custom' );
    }

    add_action('wp_enqueue_scripts', 'custom_script');

    function replace_script() {
        wp_register_script( 'replace', get_template_directory_uri() . '/js/jquery.ba-replacetext.min.js', true );
        wp_enqueue_script( 'replace' );
    }

    add_action('wp_enqueue_scripts', 'replace_script');

लेकिन स्क्रिप्ट अभी भी हेडर में शामिल की जा रही हैं।

कोई सुझाव है कि ठीक करने के लिए?

जवाबों:


18

आपने अपना कोड कहां रखा था?

  1. "सही" तर्क अंदर जाते हैं wp_register_script();, न किwp_enqueue_script() ;

कार्य हैं:

<?php wp_enqueue_script('handle', 'src', 'deps', 'ver', 'in_footer'); ?>

अर्थ

    <?php wp_enqueue_script('NameMySccript', 'path/to/MyScript', 
'dependencies_MyScript', 'VersionMyScript', 'InfooterTrueorFalse'); ?>

ईजी

<?php wp_enqueue_script('my_script', WP_CONTENT_URL . 'plugins/my_plugin/my_script.js', array('jquery', 'another_script'), '1.0.0', true); ?>

  1. क्या आपकी थीम <?php wp_footer(); ?> पेज के अंत में है?

3. कार्रवाई के साथ जोड़ें add_action('wp_print_scripts', 'your function');

कहा जा रहा है, आपका सबसे अच्छा अभ्यास होगा:

<?php  
if (function_exists('load_my_scripts')) {  
    function load_my_scripts() {  
        if (!is_admin()) {  
        wp_deregister_script( 'jquery' );  
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js');  
        wp_enqueue_script('jquery');  
        wp_register_script('myscript', bloginfo('template_url').'/js/myScript.js'__FILE__), array('jquery'), '1.0', true );  
        wp_enqueue_script('myscript');  
        }  
    }  
}  
add_action('init', 'load_my_scripts');  
?>  

या add_action('wp_print_scripts', 'dl_register_js');


धन्यवाद अब यह काम कर रहा है, लेकिन मुझे एहसास हुआ कि या trueतो काम करना wp_enqueueया wp-register_scriptठीक काम करना।
जोंचेन

4
@ krembo99 wp_register_script()तर्कों की समान मात्रा लेता है और दोनों $wp_scriptsवैश्विक सरणी और उप-श्रेणी में जोड़ते हैं data। आपके उत्तर की अवलंबनीय पठनीयता के साथ गलत जानकारी को संयुक्त करने पर, मुझे आपको -1 (पुनः प्राप्ति पर हटा दिया जाएगा) देना है।
केसर

1
मेरे लिए पहेली का अनुपस्थित टुकड़ा <?php wp_footer(); ?>पेज टेम्पलेट में मौजूद नहीं था। उसके बाद, trueपैरामीटर wp_enqueue_scriptने अपना काम किया।
जोहन्ना

6

आप निर्भरता परम के लिए एक बूल मान पारित कर रहे हैं। इसे इस्तेमाल करे:

 wp_enqueue_script(
      'replace', 
       get_template_directory_uri().'/js/jquery.ba-replacetext.min.js',
       array('jquery'), 
       '', 
       true
);

2
यह तकनीकी रूप से प्रश्न में कोड के आधार पर उनके प्रश्न का सही उत्तर है।
एंडीवर्न

4

मुझे भी यही समस्या थी और कुछ खोज करने के बाद मैं अपने कस्टम विषय में इस फ़ंक्शन को याद कर रहा था:

 <?php wp_footer();?>

3

मैं यहाँ उत्तर को आसान बनाना चाहता हूँ .. जब पाद लेख में स्क्रिप्ट को लोड करने के लिए wp_enqueue_script या wp_register_script का उपयोग करते हैं, तो आपको यह सुनिश्चित करने की आवश्यकता है कि आप अन्य पैरामेट्स को भी शामिल करें, भले ही वे रिक्त हों।

मै प्रयास कर रहा था..

wp_register_script( 'rrssb', get_stylesheet_directory_uri() . '/includes/rrssb.min.js',  true);

जिस पर @janoChen ने ध्यान नहीं दिया है। Wordpress के लिए कहता है

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

तो आपको '',उन मापदंडों के लिए शामिल करने की आवश्यकता है जिन्हें आप उपयोग नहीं कर रहे हैं यदि आप फ़ंक्शन इनलाइन घोषित करना चाहते हैं। इसलिए नीचे दिया गया कोड योजना के अनुसार काम करता है।

wp_register_script( 'rrssb', get_stylesheet_directory_uri() . '/includes/rrssb.min.js', '', '', true);

इसके बाद आप फंक्शन को @Brian Fegter शो जैसे फॉर्मेट में ऐलान कर सकते हैं।


आपको केवल खाली स्ट्रिंग्स प्रदान करने की आवश्यकता है जहां प्लेसहोल्डर्स की आवश्यकता है।
s_ha_dum 14

आह येस! बेशक, केवल '',जहां पैरामीटर की आवश्यकता होती है, वैकल्पिक नहीं।
एंड्रयू-थिंक यूपी

2

यदि आप हेडर के लिए एक स्क्रिप्ट की गणना करते हैं, लेकिन पाद लेख की गणना की गई स्क्रिप्ट के लिए निर्भरता की घोषणा करते हैं, तो वर्डप्रेस पाद लेख को हेडर पर ले जाएगा जो इसे आश्रित स्क्रिप्ट / एस को उपलब्ध कराएगा।


1

आधिकारिक वर्डप्रेस प्रलेखन के अनुसार (अंतिम जांच - मई 2018):

https://developer.wordpress.org/reference/functions/wp_enqueue_script/

और 7+ वर्षों का व्यक्तिगत अनुभव।

  1. आपको स्थापित प्लगइन्स / थीम के साथ बेहतर संगतता के लिए हमेशा ' wp_enqueue_scripts ' फ़ंक्शन का उपयोग करना चाहिए ।

     add_action('wp_enqueue_scripts','your_plugin_enqueue');
  2. आप आधिकारिक डॉक्स उपयोग के बारे में अधिक जानकारी यहाँ पा सकते हैं

       /**** wp_register_script, wp_enqueue_script, wp_dequeue_script ***
    
             *** Personal recommendation
             *  - I strongly recommend registering all scripts before enqueueing,
             *  again -> for better compatibility with other developers. 
             *  :::: For example, so others could manipulate the position 
             *       of your scripts using the wp_dequeue_*type* method. 
             *       (wp_dequeue_script, wp_dequeue_style,...)
    
             *** Official Docs
             *   $in_footer
             *      - (bool) (Optional) Whether to enqueue the script before </body> instead of in the <head>. Default 'false'.
             *      - Default value: false
             *
             ***/
    
             // examples:
    
      function your_plugin_enqueue(){
    
    
    
             wp_dequeue_script('some_script(s)'); // remove conflicting script
    
             wp_register_script( $handle, $src, $deps, $ver, $in_footer=true ); 
             wp_enqueue_script($handle);
             wp_register_script('some_script(s)', $src, $deps, $ver, $in_footer=true);  // re-enqueue scripts after yours for example to elimination of conflicts
    
             wp_enqueue_script('some_script(s)');
    
      }
    
    
      add_action('wp_enqueue_scripts','your_plugin_enqueue');

PS यदि आपको यह उत्तर उपयोगी लगता है, तो कृपया इसे '(' ( ArrowUP ) दें, यदि आपको लगता है कि इसमें सुधार किया जा सकता है, तो कृपया नीचे टिप्पणी करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.