Więc jaka jest najlepsza praktyka tutaj?
Powiedziałbym, że jest to kombinacja pozwalająca na obsługę tego motywu i dostarczenie domyślnej wtyczki.
Możesz użyć single_template
filtru, aby zmienić szablon. W swoim wywołaniu zwrotnym sprawdź, czy motyw zawiera szablon typu postu, jeśli tak, nie rób nic.
<?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;
}
Najbardziej podoba mi się ta metoda. Połącz to z dostarczeniem dźwiękowego zestawu „tagów szablonów” (np. the_content
, the_title
), Które obsługują dowolne niestandardowe dane, które pasują do twojego typu postu, i dajesz użytkownikowi końcowemu wiele możliwości dostosowywania wraz z pewnymi domyślnymi ustawieniami dźwięku. Bbpress robi takie rzeczy naprawdę dobrze: zawiera szablony użytkownika, jeśli je znajdzie i zapewnia wiele tagów szablonów.
Alternatywnie możesz użyć wywołania zwrotnego z the_content
filtrem i po prostu zmienić rzeczy w samej treści.
<?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;
}