2017-02-28 73 views
0

我有一個包含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

你可以請加上你的問題。只需複製並粘貼命令和結果,以便人們可以看到 –

回答

0

發現這個問題。滑塊模板使用WP_Query,我必須添加<?php wp_reset_query(); ?>來解決該問題。我認爲查詢打破了這個循環或類似的東西。無論哪種方式,通過添加上述行來解決問題!