那么这里的最佳实践是什么?
我想说的是让主题处理它和为插件提供默认值的组合。
您可以使用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;
}