जावास्क्रिप्ट फ़ाइल को विशिष्ट पोस्ट और / या पृष्ठों में जोड़ने का सबसे कुशल तरीका?


18

मैं सोच रहा हूं कि किसी पोस्ट और / या पेज के लिए विशेष रूप से जावास्क्रिप्ट फ़ाइल को जोड़ने के लिए सबसे कुशल तरीका क्या है।

यहाँ कुछ समाधान दिए गए हैं जिनके साथ मैं आया:

  • HTML संपादन दृश्य में स्विच करें और वहां अपना जावास्क्रिप्ट पोस्ट करें (बहुत बुरा समाधान)
  • कुंजी और मान जोड़े में उस पोस्ट / पृष्ठ के लिए विशिष्ट जावास्क्रिप्ट के साथ कस्टम फ़ील्ड
  • Footer.php में, जावास्क्रिप्ट फ़ाइलों को उस पेज के आधार पर लोड करें जिस पर आप हैं (हालांकि यह बहुत अधिक सशर्त होता है)

साइड नोट पर, जावास्क्रिप्ट फ़ाइलों में से कोई भी पृष्ठों के बीच साझा नहीं किया जाएगा - यह शाब्दिक रूप से उस चीज के लिए विशिष्ट होगा जो आप वर्तमान में देख रहे हैं।

कोई विचार?


मेटा बॉक्स / कस्टम फ़ील्ड आपके लिए सबसे अच्छा विकल्प हैं
Miha Rekar

आप दक्षता को कैसे परिभाषित करेंगे?
FUXIA

1
'कुशल' से मेरा मतलब है कि कोड अतिरेक की कम से कम राशि और विशेष रूप से किसी एक पोस्ट / पृष्ठ के लिए ऐसा करने के लिए सबसे प्रभावी तरीका।
मूसपोर्ट्स

जवाबों:


31

मुझे लगता है कि दक्षता के बीच सबसे अच्छा संतुलन, और जावास्क्रिप्ट जोड़ने के लिए उचित वर्डप्रेस विधियों का उपयोग करना आपके विषयों फ़ंक्शन के लिए इन पंक्तियों के साथ कुछ जोड़ना होगा। php फ़ाइल। उदाहरण के लिए:

functions.php:

function load_scripts() {
    global $post;

    if( is_page() || is_single() )
    {
        switch($post->post_name) // post_name is the post slug which is more consistent for matching to here
        {
            case 'home':
                wp_enqueue_script('home', get_template_directory_uri() . '/js/home.js', array('jquery'), '', false);
                break;
            case 'about-page':
                wp_enqueue_script('about', get_template_directory_uri() . '/js/about-page.js', array('jquery'), '', true);
                break;
            case 'some-post':
                wp_enqueue_script('somepost', get_template_directory_uri() . '/js/somepost.js', array('jquery'), '1.6', true);
                break;
        }
    } 
}

add_action('wp_enqueue_scripts', 'load_scripts');

यह आपको पूर्ण नियंत्रण देता है कि क्या कहाँ लोड होता है, आपके विषयों में एक केंद्रीकृत स्थान कार्य करता है। संपादन के लिए फ़ाइल जो लोड हो जाती है, जहां: और, इस तरह से अपने पदों और पृष्ठों में जावास्क्रिप्ट जोड़ने के लिए सुरक्षित तरीके का उपयोग करता है ।


1
अच्छा सा फंक्शन। आप 'केंद्रीकृत स्थान' के लिए उपयोगी होने के बारे में सही हैं। बहुत बहुत धन्यवाद।
21

3
मुझे लगता है कि इसे थोड़ा साफ किया जा सकता है। आप मूल रूप से दो अलग-अलग स्विच-मामलों के साथ एक ही चीज़ की जाँच कर रहे हैं। मैं कहूंगा कि स्विच-केस, और सशर्त दोनों को जोड़ सकते हैं अगर हो सकता है if (is_page() || is_single())। आपको क्या लगता है बेन?
दोपहर

मेरे लिए एक सुधार की तरह लगता है। अच्छा था!
बेन हार्टलेन

@ क्या यह कार्य है। विषय के अंदर या wp- में एक शामिल है ? मेरा पृष्ठ का शीर्षक एक्सेस टू होम ऑनलाइन है और मैंने आपके फ़ंक्शन को बदल दिया homeहै, Access to Home Onlineलेकिन यह काम नहीं कर रहा है?
५५ पर Ciasto पीकरज़

@Ciastopiekarz मैंने अपने उत्तर को बेहतर दिखाने के लिए अद्यतन किया है कि कोड आपके थीम फ़ंक्शन में जाता है।
बेन हार्टलेन

2

मैं क्या करता या तो पाद या हेडर में जगह है और PHP सशर्त का उपयोग करें।

उदाहरण के लिए:

<?php if (is_page ('your-page')){?>

  <script type="text/javascript" src"the file path"></script>

<?php } elseif ( is_page ('another')){?>

  <script type="text/javascript" src"the file path"></script>

<?php } else { ?>

  <script type="text/javascript" src"the file path"></script>

<?php } ?>

इस तरह से आपके सभी पेजों पर हर समय सभी लिपियों को कॉल नहीं किया जाता है और आपकी केवल उन्हीं कॉलिंग की जरूरत होती है।

यहां वर्डप्रेस कोडेक्स http://codex.wordpress.org/Conditional_Tags का लिंक दिया गया है

और अगर आपके पास विशेष स्क्रिप्ट हैं जो केवल प्रति पोस्ट के आधार पर कस्टम फ़ील्ड का उपयोग करने के लिए कॉल करने की आवश्यकता हो सकती है।


धन्यवाद निकोल - यह # 3 था। यह एक सभ्य समाधान है, यह देखते हुए कि मेरे पास कई पृष्ठ नहीं हैं ... फिर भी इस पर विचार कर रहे हैं।
पतिपत्नी

व्हाट्सएप के ऊपर वर्डप्रेस कोडेक्स के विभिन्न मदों के साथ उपयोग किया जा सकता है जैसे: is_categories, is_single (पोस्ट के लिए), is_post_type ... मैंने अपने उत्तर में वर्डप्रेस की सशर्त सूची में एक लिंक जोड़ा है।
निकोल

0

अन्य परीक्षण किया गया तरीका नीचे संपादक से सीधे पेज में जोड़ने के लिए है और स्क्रिप्ट टैग के साथ टिप्पणी जोड़ें अन्य बुद्धिमान यह काम नहीं करेगा।

<script type="text/javascript">
<!--
var a = 5;
alert("hello world. The value of a is: " + a);
-->
</script>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.