web-dev-qa-db-ja.com

創世記のテーマフレームワークのカスタム投稿タイプにカスタムテンプレートを使用する

モデレータのメモ:元のタイトルは「Genesisテーマフレームワークでカスタム投稿タイプ用のカスタムテンプレートを作成して使用するにはどうすればよいですか?)

私は創世記のテーマフレームワークを使用していますが、ほぼ完全に 'stock'の子テーマがあります。 WP簡易投稿タイプ プラグインをインストールし、カスタム投稿タイプ( "メンバー")を1つ作成しました。 'member'の投稿タイプ(電話番号と住所)に使用するために作成された2つのカスタムフィールドがあります。これらのフィールドの情報を2つの場所(example.com/membersexample.com/members/bob)に表示する方法を見つけようとしています。 Genesisはカスタム投稿タイプ用のテンプレートを作成するための典型的なsingle-posttype.phpファイルをサポートしていませんが、たとえそうであっても、それはexample.com/membersの面倒を見ません。必要な情報を表示する方法について何か提案はありますか?

2

私は間違っていましたが、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();
1

誰かがこのプロセスの次のステップを明確にしてもらえますか? Genesisの子テーマにも同様のカスタム投稿タイプがあり、複数の投稿の分類ページおよび単一のカスタム投稿ページでループを変更する必要があります。この場合、ループのカスタムコードはどこにありますか。ありがとうございます。

0
Adam

ただし、このテンプレートは、創世記ではなく、子テーマフォルダに移動する必要があります。

編集:

上記のように手動でsingle- $ posttype.phpを作成し、それを子テーマに追加する必要があります。 WordPressテンプレート階層 をご覧ください。言うまでもなく、子テーマに追加したものは親テーマファイルを上書きします。

0
Marna

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' );
0
John P Bloch