高级自定义域循环行为
问题描述:
我有一个包含3个自定义域的页面。对于每个这些领域,我需要使用一个模板。所以我做的是高级自定义域循环行为
<?php if(have_rows('page_block')):?>
<?php while (have_rows('page_block')) : the_row();?>
<?php if(get_row_layout() == 'content_block'):?>
<?php get_template_part("content-block");?>
<?php elseif(get_row_layout() == 'slider'):?>
<?php get_template_part("slider"); ?>
<?php elseif(get_row_layout() == 'news_block'):?>
<?php get_template_part("news-block"); ?>
<?php endif; ?>
<?php endwhile; ?>
....
<?php endif; ?>
问题是只有前两个字段显示在页面上。所以当字段的顺序是
- 内容块
- 滑块
- 新闻块
只有内容块和滑块显示。当我将滑块放置在底部时,只显示内容块和新闻块。
任何想法可能是什么问题?
编辑 忘了提及,当我回显get_row_layout()时,我得到所有3个字段的名称。
<?php if(have_rows('page_block')):?>
<?php while (have_rows('page_block')) : the_row();?>
<?php echo get_row_layout(); ?>
<?php endwhile; ?>
<?php endif; ?>
显示content_block滑块news_block
答
发现这个问题。滑块模板使用WP_Query,我必须添加<?php wp_reset_query(); ?>
来解决该问题。我认为查询打破了这个循环或类似的东西。无论哪种方式,通过添加上述行来解决问题!
你是否在没有条件的情况下回应了has_rows中返回的内容?如果它没有显示,那要么是因为数据没有回来,要么是你的情况混乱。我会把所有的逻辑写在一个单独的php块中,直到找出问题。 –
噢,忘了提到这一点。当我回显get_row_layout()时,我得到所有3个字段的名称。 – Jaimy
你可以请加上你的问题。只需复制并粘贴命令和结果,以便人们可以看到 –