CPTの "イベント"があります。私はsingle-event.phpを作成しました。
あるイベントでシングルイベントとは異なるテンプレートを使用したいのですが。
私はこれをシングルイベント - [slug] .phpを作成することによって行うことができると他の所で読みましたが、私はそれを試みましたがうまくいきません。 WPはsingle-event.phpを使います。 (私はWordPressのドキュメントでこれを見つけることができないので、多分私は誤解していると思いますか?)
これを行う方法はありますか?
WordPressが使用するテンプレートについては、Codexの テンプレート階層構造 を常に参照してください。
ご覧のとおり、single-{$posttype}-{$slug}.php
は存在せず、single-{$posttype}.php
しかありません。
あなたが望むことをするために、フィルタ'single_template'
を見てください:
add_filter( 'single_template', function( $template ) {
global $post;
if ( $post->post_type === 'event' ) {
$locate_template = locate_template( "single-event-{$post->post_name}.php" );
if ( ! empty( $locate_template ) ) {
$template = $locate_template;
}
}
return $template;
} );
これをあなたのfunctions.php
に追加した後、あなたはファイルsingle-event-{$slug}.php
を作成することができ、そしてそれはWordPressによってロードされます。
このテーマを自分の関数ファイルで子テーマに使用し、8をカスタムシングルCPTテンプレートを使用したい投稿i.Dに変更します。
function get_custom_post_type_template($single_template) {
global $post;
if ( is_single('8') ) {
$single_template = get_stylesheet_directory() . '/custom-cpt-template.php';
}
return $single_template;
}
add_filter( 'single_template', 'get_custom_post_type_template' );