2

Genesis の子テーマには、標準とギャラリーの 2 つの異なる投稿形式 (タイプではありません!) があります。

ユーザーがギャラリーを選択すると、高度なカスタム フィールド プラグインを介して追加のフィールドが提供されます。ACF プラグインからデータを取得するには、Post フォーマット 'Gallery' のテンプレートを変更する必要があることを知っています。

ジェネシスでこれを行うにはどうすればよいですか?

私はそれを試しました:

remove_action( 'genesis_loop', 'genesis_do_loop' );
add_action( 'genesis_loop', 'loop_helper' );
function loop_helper() {

    if ( has_post_format( 'gallery' )) {
        echo 'this is the gallery format';
    } else {
        genesis_standard_loop();
    }
}

しかし、「<em>これはギャラリー形式です」と表示されるだけで、それ以外は何も表示されないため、これは機能しません。私は次のようなものを探しています:

if ( has_post_format( 'gallery' )) {
    get_template_part(‘content’,get_post_format());
} else {
    show standard post
}

誰かがこれに対する解決策を持っていますか?

ありがとう!

4

1 に答える 1

2

私は自分でそれを解決しましたが、これはうまく機能しているようです:

functions.php:

remove_action( 'genesis_entry_content', 'genesis_do_post_content' );
add_action('genesis_entry_content', 'custom_entry_content');
function custom_entry_content() {
    if (get_post_format() == 'gallery' ) {
            get_template_part('content',get_post_format());
        } else {
            the_content();
        }
}//function

content-gallery.php:

<?php
// check if the repeater field has rows of data
if( have_rows('gallery_block') ):
    // loop through the rows of data
    while ( have_rows('gallery_block') ) : the_row();
    ?>
        <div class="gallery-block-wrapper">
            <div class="gallery-block-img">
                <img src="<?php the_sub_field( 'gallery_block_picture' ); ?>" />
            </div>
            <div class="gallery-block-headline">
                <?php the_sub_field( 'gallery_block_headline' ); ?>             
            </div>
            <div class="gallery-block-text">
                <?php the_sub_field( 'gallery_block_content' ); ?>
            </div>                                  
        </div><!-- gallery-block-wrapper -->
    <?
    endwhile;
endif;
于 2015-03-05T09:52:58.050 に答える