高级自定义域循环行为

问题描述:

我有一个包含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; ?> 

问题是只有前两个字段显示在页面上。所以当字段的顺序是

  1. 内容块
  2. 滑块
  3. 新闻块

只有内容块和滑块显示。当我将滑块放置在底部时,只显示内容块和新闻块。

任何想法可能是什么问题?

编辑 忘了提及,当我回显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

+0

你是否在没有条件的情况下回应了has_rows中返回的内容?如果它没有显示,那要么是因为数据没有回来,要么是你的情况混乱。我会把所有的逻辑写在一个单独的php块中,直到找出问题。 –

+0

噢,忘了提到这一点。当我回显get_row_layout()时,我得到所有3个字段的名称。 – Jaimy

+0

你可以请加上你的问题。只需复制并粘贴命令和结果,以便人们可以看到 –

发现这个问题。滑块模板使用WP_Query,我必须添加<?php wp_reset_query(); ?>来解决该问题。我认为查询打破了这个循环或类似的东西。无论哪种方式,通过添加上述行来解决问题!