То яка найкраща практика тут?
Я б сказав, що комбінація дозволяє дозволити темі обробляти її та надавати за замовчуванням ваш плагін.
Ви можете використовувати 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;
}