2010-09-23 5 views
5

मैंने कैलेंडर प्लगइन बनाया है और अब मैं अपने टेम्पलेट्स में से एक ईवेंट सूची दिखाना चाहता हूं। कोड मैं अब उपयोग कर रहा हूँ, यह है:मैं WP प्लगइन में अपने प्लगइन से फ़ंक्शन कैसे कॉल करूं?

include_once(WP_CAL_PLUGIN_DIR.'eventcal.class.php'); 

$calendar = new EventCalendar(); 
$events = $calendar->getMultipleEvents('5'); 

(...) 

<table> 
<?php foreach($events as $event) : ?> 
    <tr> 
    <td><span><?php echo $calendar->formatEventTime($event->startTime,'dm'); ?></span></td> 
    <td><span><?php echo $calendar->formatEventTime($event->startTime,'time'); ?></span></td> 
    <td><?php echo $event->name; ?></td> 
    </tr> 
<?php endforeach; ?> 
</table> 

वहाँ एक रास्ता मैं WP प्लगइन शामिल करने की आवश्यकता है और एक नया वर्ग उदाहरण बनाकर बिना मेरे प्लगइन के भीतर कार्यों कॉल कर सकते हैं है?

+0

आप WP प्लगइन क्यों शामिल नहीं करना चाहते हैं और एक नया वर्ग उदाहरण बनाना चाहते हैं? – bzlm

+0

मैं सोच रहा था कि ऐसा करने का एक और "WP सही" तरीका था - कुछ WP शॉर्ट कोड के समान। – Steven

+0

हां। उस स्थिति में, आपको एक शोर्ट पंजीकृत करना चाहिए। :) http://codex.wordpress.org/Shortcode_API – bzlm

उत्तर

7

:

उपरोक्त उदाहरण में, हम प्लगइन फ़ाइल में निम्न पंक्ति जाते थे। इससे पहले कि आप टेम्पलेट में इसका उपयोग कर सकें, आपके शोर्ट को सामान्य (see WordPress codex on shortcode API) के रूप में पंजीकृत होना आवश्यक है। सामग्री के अंदर, कोई भी विशेषता, वहां भी होनी चाहिए।

echo do_shortcode('[my-shortcode foo="bar"]Shortcode content[/my-shortcode]'); 

इसके अलावा, वापसी प्रतिध्वनित करने के लिए (या कम से कम एक चर के लिए असाइन करें) याद है, क्योंकि यह केवल शोर्ट के उत्पादन देता है।

2

से: http://codex.wordpress.org/Plugin_API

हुक्स वर्डप्रेस के बाकी 'में हुक' करने के लिए अपने प्लगइन अनुमति देने के लिए द्वारा वर्डप्रेस प्रदान की जाती हैं; यानी, विशिष्ट समय पर अपनी प्लगइन में फ़ंक्शन कॉल करने के लिए, और इस प्रकार अपनी प्लगइन गति में सेट करें। दो प्रकार के हुक हैं:

  1. क्रियाएं: क्रियाएं हुक हैं जो वर्डप्रेस कोर निष्पादन के दौरान विशिष्ट बिंदुओं पर लॉन्च होती है, या जब विशिष्ट घटनाएं होती हैं। आपकी प्लगइन यह निर्दिष्ट कर सकती है कि एक्शन एपीआई का उपयोग करके, इनमें से एक या अधिक PHP फ़ंक्शंस इन बिंदुओं पर निष्पादित किए गए हैं।
  2. फ़िल्टर: फ़िल्टर ऐसे हुक हैं जो वर्डप्रेस को डेटाबेस में जोड़ने या ब्राउज़र स्क्रीन पर भेजने से पहले विभिन्न प्रकार के टेक्स्ट को संशोधित करने के लिए लॉन्च करते हैं। आपकी प्लगइन निर्दिष्ट कर सकती है कि फ़िल्टर API का उपयोग करके, इनमें से एक या अधिक PHP फ़ंक्शन को इस समय विशिष्ट प्रकार के टेक्स्ट को संशोधित करने के लिए निष्पादित किया जाता है।

    क्रिया

क्रिया विशिष्ट घटनाओं है कि वर्डप्रेस में जगह ले, इस तरह, एक पोस्ट प्रकाशित करने विषयों को बदलने, या व्यवस्थापक पैनल के एक पृष्ठ प्रदर्शित रूप से चालू होने वाले कर रहे हैं। आपका प्लग इन एक PHP समारोह को क्रियान्वित करते हुए इस घटना के लिए प्रतिक्रिया कर सकते हैं, कर सकते हैं जो एक या अधिक निम्न:

* Modify database data 
* Send an email message 
* Modify what is displayed in the browser screen (admin or end-user) 

ऐसा (नीचे और अधिक विस्तार से बताया गया है) बनाने के लिए बुनियादी कदम हैं:

  1. अपनी प्लगइन फ़ाइल में, ईवेंट होने पर PHP फ़ंक्शन को निष्पादित करना चाहिए।
  2. वर्डप्रेस में कार्रवाई करने के लिए, add_action()
  3. अपने PHP फ़ंक्शन को प्लगइन फ़ाइल में रखें, और इसे सक्रिय करें।

उदाहरण: वर्डप्रेस

अपने समारोह के बाद परिभाषित किया गया है करने के लिए

function email_friends($post_ID) { 
    $friends = '[email protected],[email protected]'; 
    mail($friends, "sally's blog updated", 
     'I just put something on my blog: http://blog.example.com'); 
    return $post_ID; 
} 

हुक, अगले कदम "हुक" या WordPress के साथ यह रजिस्टर करने के लिए है। ऐसा करने के लिए, अपने प्लगइन फ़ाइल के वैश्विक निष्पादन अंतरिक्ष में ADD_ACTION() फोन:

add_action ('hook_name', 'your_function_name', [priority], [accepted_args]); 

जहां:

hook_name कार्रवाई द्वारा वर्डप्रेस प्रदान की हुक, कि बताता है कि घटना अपने कार्य करना चाहिए के नाम इसके साथ संबद्ध रहें। your_function_name hook_name द्वारा निर्दिष्ट ईवेंट के बाद उस फ़ंक्शन का नाम जिसे आप निष्पादित करना चाहते हैं।यह एक मानक PHP फ़ंक्शन, वर्डप्रेस कोर में मौजूद एक फ़ंक्शन या प्लगइन फ़ाइल (जैसे उपरोक्त परिभाषित 'ईमेल_फ्रेंड') में आपके द्वारा परिभाषित एक फ़ंक्शन हो सकता है। प्राथमिकता एक वैकल्पिक पूर्णांक तर्क जिसका उपयोग उस क्रम को निर्दिष्ट करने के लिए किया जा सकता है जिसमें किसी विशेष क्रिया से जुड़े कार्यों को निष्पादित किया जाता है (डिफ़ॉल्ट: 10)। निचले नंबर पहले निष्पादन के साथ मेल खाते हैं, और समान प्राथमिकता वाले कार्यों को उस क्रम में निष्पादित किया जाता है जिसमें उन्हें क्रिया में जोड़ा गया था। स्वीकृत_र्ग एक वैकल्पिक पूर्णांक तर्क परिभाषित करता है कि आपके फ़ंक्शन कितने तर्क स्वीकार कर सकते हैं (डिफ़ॉल्ट 1), उपयोगी क्योंकि कुछ हुक आपके फ़ंक्शन में एक से अधिक तर्क पारित कर सकते हैं। यह पैरामीटर रिलीज 1.5.1 में नया है। आदेश में एक टेम्पलेट के अंदर शोर्ट निष्पादित समारोह do_shortcode('[my-shortcode-handle]') का उपयोग करने के

add_action ('publish_post', 'email_friends'); 
+0

मुझे हुक के बारे में पता है। लेकिन यहां कोई ट्रिगर नहीं था। जब मैं एक विशिष्ट टेम्पलेट लोड करता हूं तो मैं बस एक डीबी तालिका से डेटा पुनर्प्राप्त कर रहा हूं। तो मुझे लगता है कि 'do_shortcode (' शोर्ट-हैंडल ') का उपयोग करने पर जॉन्स टिप' जाने का सबसे अच्छा तरीका है। – Steven

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