2

在我的 Genesis 子主题中,我有两种不同的帖子格式(不是类型!):标准和画廊。

当用户选择图库时,他会通过高级自定义字段插件获得额外的字段。我知道需要更改 Post 格式“Gallery”的模板,以便从 ACF 插件中提取数据。

我怎么能用创世纪做到这一点?

我试过了:

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

我自己解决了它,这似乎工作正常:

函数.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

内容-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 回答