ここでのベストプラクティスは何ですか?
私はテーマにそれを処理させることとプラグインでデフォルトを提供することの組み合わせを言うでしょう。
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;
}