कैसे jQuery की आवश्यकता है कि पाद लेख के लिए एक जावास्क्रिप्ट स्निपेट जोड़ने के लिए


27

मुझे पता है कि मैं एक स्क्रिप्ट फ़ाइल को वर्डप्रेस के पाद लेख में जोड़ सकता हूं जिसे इस कोड का उपयोग करके jquery की आवश्यकता होती है:

<?php
function my_scripts_method() {
   // register your script location, dependencies and version
   wp_register_script('custom_script',
       get_template_directory_uri() . '/js/custom_script.js',
       array('jquery'),
       '1.0',
       true);
   // enqueue the script
   wp_enqueue_script('custom_script');
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
?>

लेकिन क्या होगा अगर मैं jquery इनलाइन का सिर्फ एक सामान्य स्निपेट जोड़ना चाहता हूं, न कि एक फाइल। यह कैसे किया जा सकता है।

संपादित करें

मुझे पता है कि मैं पाद लेख में कुछ जोड़ने के लिए इस स्क्रिप्ट का उपयोग कर सकता हूं:

<?php
function myscript() {
?>
<script type="text/javascript">
 // This depends on jquery
</script>
<?php
}
add_action('wp_footer', 'myscript');

लेकिन मैं उस स्क्रिप्ट को कैसे निर्दिष्ट करता हूं जिसका उपयोग किया जाता है उसे चलाने के लिए jquery की आवश्यकता होती है


ऐसा करने के लिए कोई फ़ंक्शन नहीं बनाया गया है जो मुझे पता है, यह क्यों wp_register_scriptऔर wp_enqueue_scriptमौजूद है, लेकिन आप स्वयं jquery का उपयोग करके जांच कर सकते हैं।
व्येक

2
पतन के लिए खेद है, लेकिन मुझे नहीं लगता कि आप मेरे सवाल को समझते हैं। मैंने कोडेक्स पढ़ा है, और विकल्प के बारे में जाना। लेकिन मैं wp_enqueue_scriptपाद लेख में एक स्क्रिप्ट फ़ाइल नहीं करना चाहता , मैं पाद लेख में एक स्निपेट जोड़ना चाहता हूं जिसमें jquery की आवश्यकता होती है। मैंने कोडेक्स से सीधे लिए गए उत्तर को अस्वीकृत कर दिया। मैंने कोडेक्स पढ़ा, और मुझे उत्तर नहीं मिला, इसीलिए मैं एक प्रश्न पूछता हूं। यदि आप मुझे फिर से कोडेक्स पर पुनर्निर्देशित करते हैं तो मैं डाउनवोट कर देता हूं।
बजे सैफ बेचन

धन्यवाद व्यंग्य, मुझे लगता है कि यह मामला है, प्रश्न को सही ढंग से समझने के लिए धन्यवाद। मुझे लगता है कि मैं सिर्फ एक बाहरी जेएस स्क्रिप्ट का उपयोग करूंगा बजाय यह सुनिश्चित करने के कि स्क्रिप्ट को चलाया जा सकता है।
बजे सैफ बेचन

जवाबों:


30

ऐसा करने का सबसे आसान तरीका वास्तव में wp_enqueue_scriptऔर पाद क्रिया है जिसे सैफ और v0idless पहले ही संदर्भित कर चुके हैं। मैं अक्सर अपने थीम और प्लगइन्स में jQuery का उपयोग करता हूं, लेकिन मैंने अन्य सभी स्क्रिप्ट्स को पाद लेख में भी रखा है।

वास्तव में चीजों को कतारबद्ध करने का सबसे अच्छा तरीका यह होगा:

function myscript() {
?>
<script type="text/javascript">
  if ( undefined !== window.jQuery ) {
    // script dependent on jQuery
  }
</script>
<?php
}
add_action( 'wp_footer', 'myscript' );

function myscript_jquery() {
    wp_enqueue_script( 'jquery' );
}
add_action( 'wp_head' , 'myscript_jquery' );

लेकिन इस कोड ने यह मान लिया कि आप स्क्रिप्ट को पंक्तिबद्ध कर रहे हैं, अर्थात आप अपने स्वयं के प्लगइन या विषय में ऐसा कर रहे हैं।

फिलहाल, वर्डप्रेस पाद लेख में एक इन-लाइन स्क्रिप्ट जोड़ने का कोई तरीका नहीं है और यह निर्भरता के साथ लोड भी करता है। लेकिन एक विकल्प है, अगर आप तैयार हैं।

वैकल्पिक

जब वर्डप्रेस स्क्रिप्ट के साथ काम करता है, तो यह उन्हें ट्रैक करने के लिए आंतरिक रूप से एक ऑब्जेक्ट पर लोड करता है। ऑब्जेक्ट के अंदर अनिवार्य रूप से 3 सूचियां हैं:

  • दर्ज कराई
  • कतार
  • किया हुआ
  • करने के लिए

जब आप पहली बार रजिस्टर एक स्क्रिप्ट के साथ wp_register_scripts()यह पंजीकृत सूची में रखा गया है। जब आप wp_enqueue_script()स्क्रिप्ट, यह कतार सूची में कॉपी किया जाता है। इसे पेज पर प्रिंट करने के बाद, इसे सूची में जोड़ा गया है।

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

यह wp_script_is()जाँचने के लिए उपयोग करता है कि स्क्रिप्ट कहाँ सूचीबद्ध है।

function myscript() {
    if( wp_script_is( 'jquery', 'done' ) ) {
    ?>
    <script type="text/javascript">
      // script dependent on jQuery
    </script>
    <?php
    }
}
add_action( 'wp_footer', 'myscript' );

आप हो सकता है के रूप में अच्छी तरह से पाद लेख में लोड करने के लिए jQuery मजबूर करने के लिए यह एक ही कोड का उपयोग करने में सक्षम हो, लेकिन मैं परीक्षण नहीं किया है कि ... इसलिए आपका माइलेज भिन्न मेरे।


क्या आपका प्रदान किया गया कोड स्निपेट वर्डप्रेस प्लगइन विकास मानकों द्वारा स्वीकार किया जाता है? यदि हाँ, तो मैं इसे अपने प्लगइन में उपयोग करूंगा ... कृपया मुझे इस पर उत्तर दें ...
लाराब

आखिरी स्निपेट? नहीं। वर्डप्रेस प्लगइन्स को हमेशा स्क्रिप्ट आवश्यकताओं को ध्यान में रखना चाहिए । मजबूरन jQuery को इस तरह से कतार प्रणाली के बाहर लोड करने के लिए केवल कुछ ऐसा है जो आपको अपनी साइट पर करना चाहिए जहां आप पर्यावरण के 100% को नियंत्रित करते हैं। यह है कभी नहीं उचित एक प्लगइन है कि ऐसा करने के लिए के लिए।
एमान

तो क्या आप मुझे उस के लिए कुछ काम करने का उदाहरण दे सकते हैं ... ????
लारैब

क्योंकि मैं अपना पहला वर्डप्रेस प्लगइन विकसित कर रहा हूं और मुझे यह पसंद आएगा कि मुझे वर्डप्रेस टीम ने स्वीकार कर लिया है ... आपकी किसी भी प्रतिक्रिया की प्रतीक्षा कर रहा हूं .... आपके पास इस बारे में आपका क्या कहना है ताकि मैं अपना प्लगइन बना सकूं और बना सकूं ...
लाराब

12

वर्डप्रेस 4.5 के बाद से आप इनलाइन स्क्रिप्ट को जोड़ सकते हैं wp_add_inline_script()। JQuery की आवश्यकता वाले पाद लेख के लिए एक जावास्क्रिप्ट स्निपेट जोड़ने के लिए, यह कोड आपकी सहायता करता है

function enqueue_jquery_in_footer( &$scripts ) {

    if ( ! is_admin() )
        $scripts->add_data( 'jquery', 'group', 1 );
}
add_action( 'wp_default_scripts', 'enqueue_jquery_in_footer' );

function theme_prefix_enqueue_script() {
   if(!wp_script_is('jquery', 'done')) {
     wp_enqueue_script('jquery');
   }
   wp_add_inline_script( 'jquery-migrate', 'jQuery(document).ready(function(){});' );
}
add_action( 'wp_enqueue_scripts', 'theme_prefix_enqueue_script' );

वर्डप्रेस jquery के साथ wp_add_inline_script


1

wp_footerइस तरह कार्रवाई का उपयोग करें:

add_action( 'wp_footer', 'wpse33008');
function wpse33008() {
?>
<script type="text/javascript">
    /** INSERT SCRIPT HERE **/
</script>
<?php
}

1
यह एक अच्छा जवाब नहीं है। मैंने पूछा कि मैं स्क्रिप्ट की आवश्यकता को कैसे निर्दिष्ट कर सकता हूं jQuery। यदि उपयोगकर्ता के पास रनवे नहीं है तो आपका कार्यान्वयन नहीं चलेगा।
बजे सैफ बेचन

0

मुझे पता है कि ओपी jQuery पर एक आवश्यकता निर्दिष्ट करना चाहता है, और वर्डप्रेस के लेखकों को स्निपेट को स्क्रिप्ट फ़ाइलों से सटे होने की अनुमति दी जानी चाहिए, लेकिन उन्होंने ऐसा नहीं किया, इसलिए मैं इसे लागू करने की कोशिश नहीं करने की सलाह देता हूं। यदि आप कतार में या इसके क्रम में गड़बड़ी नहीं करना चाहते हैं, तो मेरी तरह (क्योंकि मैं अन्य प्लगइन्स का उपयोग कर रहा हूं जो स्क्रिप्ट को जोड़ती और अनुकूलित करता है), तो जवाब वास्तव में wp_footerकार्रवाई का उपयोग करना है:

<?php

add_action(
    'wp_footer'
    , function() {
        ?>
        <script>
            if (window.jQuery) {
                // your snippet
            }
        </script>
        <?php
    }
    , 21 # after enqueued footer scripts
);

-2

आप ऐसा करने के लिए wp_footerक्रिया का उपयोग कर सकते हैं । Wp_footer के कोड कोड की जाँच करें ।


मुझे पता है, लेकिन आप यह कैसे निर्दिष्ट कर सकते हैं कि आपके द्वारा पाद लेख में जो स्क्रिप्ट जोड़ी गई है, वह jquery पर निर्भर है। अधिक विशिष्ट होने के लिए मेरे संपादन की जाँच करें।
सैफ बेचन

क्या आप भी लोगों के उत्तरों को वोट करने से पहले कोडेक्स के आसपास पढ़ने से परेशान हैं? क्या आपने कभी in_footerतर्क के बारे में पढ़ा है wp_enqueue_script? इस पढ़ें: codex.wordpress.org/Function_Reference/wp_enqueue_script । यह आपको बताता है कि wp_footerकार्रवाई के साथ इसका उपयोग कैसे करें ।
रूतविक गंगुरड़े
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.