2010-07-24 12 views
21

मैं संपादन पोस्ट पेज पर कुछ कस्टम jquery कोड जोड़ना चाहता हूं, जब कोई प्रकाशित करता है तो div को दिखाने जैसा वास्तव में सरल होता है।वर्डप्रेस एडमिन में कस्टम जावास्क्रिप्ट कैसे जोड़ें?

एकमात्र प्रतिबंध यह है कि मैं प्लगइन के उपयोग के माध्यम से इसे प्राप्त करना चाहता हूं, व्यवस्थापक टेम्पलेट फ़ाइलों को हैक नहीं कर रहा हूं।

मैंने कुछ क्रियाओं का उपयोग करके कुछ स्क्रिप्ट टैग को प्रतिबिंबित करने का प्रयास किया है, लेकिन ऐसा लगता है कि यह तरीका नहीं है। Wordpress 3.2.1 पर

function custom_admin_js() { 
    $url = get_bloginfo('template_directory') . '/js/wp-admin.js'; 
    echo '"<script type="text/javascript" src="'. $url . '"></script>"'; 
} 
add_action('admin_footer', 'custom_admin_js'); 

वर्क्स ठीक:

उत्तर

40

व्यवस्थापक इंटरफ़ेस में कस्टम स्क्रिप्ट जोड़ने के लिए admin_enqueue_scripts कार्रवाई और wp_enqueue_script विधि का उपयोग करें।

यह मानता है कि आपके प्लगइन फ़ोल्डर में myscript.js है। तदनुसार बदलें। my_custom_script हैंडल आपके मॉड्यूल और स्क्रिप्ट के लिए अद्वितीय होना चाहिए।

function my_enqueue($hook) { 
    if ('edit.php' !== $hook) { 
     return; 
    } 
    wp_enqueue_script('my_custom_script', plugin_dir_url(__FILE__) . '/myscript.js'); 
} 

add_action('admin_enqueue_scripts', 'my_enqueue'); 
+3

वर्डप्रेस के वर्तमान संस्करण के लिए यह सही जवाब है (उदाहरण सीधे वर्डप्रेस कोडेक्स से खींचा गया है)। – thirdender

+0

मैं इस कोड को किस फाइल में रखना चाहिए? फ़ाइल में कहां रखा जाना चाहिए? – commadelimited

+0

आपकी [प्लगइन फ़ाइल] में (https://codex.wordpress.org/Writing_a_Plugin)। – Tim

17
<?php 
function add_jquery_data() { 
    global $parent_file; 

    if (isset($_GET['action']) && $_GET['action'] == 'edit' && isset($_GET['post']) && $parent_file == 'edit.php') { 
    // Do some stuff. 
    } 
} 

add_filter('admin_head', 'add_jquery_data'); 

?> 
+0

धन्यवाद एक गुच्छा, यह वही है जो मैं ढूंढ रहा हूं। मैंने admin_footer वैसे भी इस्तेमाल किया है। हालांकि, क्या नई पोस्ट/संपादन पोस्ट पर सामग्री _only_ लोड करने का कोई तरीका है? – Nacho

+4

ठीक है अगर आप इसे नए पोस्ट पेज के लिए भी चाहते हैं, तो आप इसे आजमा सकते हैं:

35

आपका functions.php फ़ाइल के लिए एक टुकड़ा भी नहीं है।

+0

मैं इतना है कि मैं व्यवस्थापक बार है कि मैं अपने ग्राहक के साथ खिलवाड़ वेबसाइट पंगा लेना नहीं चाहता था के कुछ भागों को छिपाने के लिए कुछ jQuery कोड को लोड कर सकता है मेरी विषय में यह अटक गया। देखें, मैं सामग्री और कस्टम थीम के लिए पीओडीएस प्लगइन का उपयोग कर रहा हूं। – Volomike

+0

@ कुल्दीपडाफ्टरी शायद आप अपने कस्टम जेएस को एक फ़ंक्शन के माध्यम से सक्रिय कर सकते हैं, जो पृष्ठ और jQuery लोडिंग के बाद ट्रिगर किया जाएगा? –

+2

स्क्रिप्ट जोड़ने का यह गलत तरीका है। [टिम के उत्तर] में दिखाए गए अनुसार आपको स्क्रिप्ट को एनक्यू करना चाहिए (http://stackoverflow.com/a/21914399/1924128)। –

संबंधित मुद्दे