(モデレータのメモ:元のタイトルは「Genesisテーマフレームワークでカスタム投稿タイプ用のカスタムテンプレートを作成して使用するにはどうすればよいですか?)
私は創世記のテーマフレームワークを使用していますが、ほぼ完全に 'stock'の子テーマがあります。 WP簡易投稿タイプ プラグインをインストールし、カスタム投稿タイプ( "メンバー")を1つ作成しました。 'member'の投稿タイプ(電話番号と住所)に使用するために作成された2つのカスタムフィールドがあります。これらのフィールドの情報を2つの場所(example.com/members
とexample.com/members/bob
)に表示する方法を見つけようとしています。 Genesisはカスタム投稿タイプ用のテンプレートを作成するための典型的なsingle-posttype.php
ファイルをサポートしていませんが、たとえそうであっても、それはexample.com/members
の面倒を見ません。必要な情報を表示する方法について何か提案はありますか?
私は間違っていましたが、Genesisはpage_posttype.php
メソッドを使ったカスタムテンプレートの作成をサポートしています。とても単純なことがわかった。これは私のpage_members.phpファイルの内容です(子テーマフォルダにあります):
<?php
/*
Template Name: Members
*/
remove_action('genesis_loop', 'genesis_do_loop');
add_action('genesis_loop', 'custom_loop');
function custom_loop() {
global $paged;
$args = array('post_type' => 'members');
genesis_custom_loop( $args );
}
genesis();
誰かがこのプロセスの次のステップを明確にしてもらえますか? Genesisの子テーマにも同様のカスタム投稿タイプがあり、複数の投稿の分類ページおよび単一のカスタム投稿ページでループを変更する必要があります。この場合、ループのカスタムコードはどこにありますか。ありがとうございます。
ただし、このテンプレートは、創世記ではなく、子テーマフォルダに移動する必要があります。
編集:
上記のように手動でsingle- $ posttype.phpを作成し、それを子テーマに追加する必要があります。 WordPressテンプレート階層 をご覧ください。言うまでもなく、子テーマに追加したものは親テーマファイルを上書きします。
Matt Wiebeが彼の "Smarter Custom Post Types"プラグインでどのようにしているのか見てみましょう。
http://somadesign.ca/projects/smarter-custom-post-types/ /
関連する機能は次のとおりです。
function my_custom_template_include( $template ) {
if ( get_query_var('post_type') == 'members' ) {
if ( is_single() ) {
if ( $single = locate_template( array( 'members/single.php') ) )
return $single;
}
else { // loop
return locate_template( array(
'members/index.php',
'members.php',
'index.php'
));
}
}
return $template;
}
add_filter( 'template_include', 'my_custom_template_include' );