तो यहां सबसे अच्छा अभ्यास क्या है?
मैं कहूंगा कि थीम को संभालने और आपके प्लगइन के साथ डिफ़ॉल्ट प्रदान करने का एक संयोजन।
आप single_template
टेम्पलेट को स्विच करने के लिए फ़िल्टर का उपयोग कर सकते हैं । अपने कॉलबैक में, देखें कि क्या थीम ने पोस्ट प्रकार के लिए टेम्पलेट प्रदान किया है, यदि यह किया है, तो कुछ भी नहीं करें।
<?php
add_filter('single_template', 'wpse96660_single_template');
function wpse96660_single_template($template)
{
if ('your_post_type' == get_post_type(get_queried_object_id()) && !$template) {
// if you're here, you're on a singlar page for your costum post
// type and WP did NOT locate a template, use your own.
$template = dirname(__FILE__) . '/path/to/fallback/template.php';
}
return $template;
}
मुझे यह तरीका सबसे अच्छा लगता है। इसे "टेम्पलेट टैग्स" (जैसे। ) का एक ध्वनि सेट प्रदान करने के साथ मिलाएं the_content
, the_title
जो आपके पोस्ट प्रकार के साथ जाने वाले कस्टम डेटा का समर्थन करता है और आप अंतिम उपयोगकर्ता को कुछ ध्वनि चूक के साथ बहुत अधिक अनुकूलन शक्ति देते हैं। Bbpress इस तरह की बात वास्तव में अच्छी तरह से करता है: इसमें उपयोगकर्ता टेम्पलेट शामिल हैं यदि यह उन्हें ढूंढता है और बहुत सारे टेम्पलेट टैग प्रदान करता है।
वैकल्पिक रूप से, आप the_content
फ़िल्टर के साथ कॉलबैक का उपयोग कर सकते हैं , और सामग्री में केवल सामान बदल सकते हैं।
<?php
add_filter('the_content', 'wpse96660_the_content');
function wpse96660_the_content($content)
{
if (is_singular('your_post_type') && in_the_loop()) {
// change stuff
$content .= '<p>here we are on my custom post type</p>';
}
return $content;
}