2015-04-02 77 views
1

我對一些Wordpress集成的軟件使用了一個主題,這意味着我基本上被模板層次結構卡住了,否則我會設置一個自定義模板來解決這個問題。Wordpress模板部分中的自定義循環

無論如何,我有我的page.php文件,這看上去有點像下面

<?php //start the main loop 
if (have_posts()) : while (have_posts()) : the_post(); ?> 

     <?php if (is_page('contact-us')) { 
      get_template_part('content', 'contact'); 
     }else{ 
      get_template_part('content', 'page');     
     } 
     ?> 


<?php //end the main loop 
endwhile; else: ?> 
    Something is missing 
<?php endif; ?> 

這工作得很好,並如預期,我能內容page.php文件中添加HTML

但是,我想在content-page.php中添加一個自定義循環來顯示客戶推薦。我下面裏面內容page.php文件的代碼嘗試這樣的:

<?php //close the main loop 
endwhile; else : ?> 
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p> 
<?php endif; ?> 

<?php 
//close the main loop and open a custom loop 
wp_reset_postdata(); 
$args = array (
    'post_type' => 'testimonial', 
    'posts_per_page' => 5, 
    'orderby' => 'rand' 
); 

$the_query = new WP_Query ($args); 

if (have_posts()) : while ($the_query ->have_posts()) : $the_query ->the_post(); ?> 

Do HTML stuff here 

<?php //close the custom loop 
endwhile; else: ?> 
Uh oh, there is meant to be a testimonial here. Please create some. 
<?php endif; ?> 

<?php //re-open the main loop 
    wp_reset_postdata(); 
    if (have_posts()) : while (have_posts()) : the_post(); 
?>  

此代碼創建一個PHP錯誤(意外ENDWHILE,我試圖關閉主循環)。然而,我把這個完全相同的代碼直接在page.php中,它的工作原理。它只在content-page.php內出錯。我無法使用get_template_part包含自定義循環嗎?

回答

0

最後ENDWHILE和endif不是關閉

<?php //re-open the main loop 
    wp_reset_postdata(); 
    if (have_posts()) : while (have_posts()) : the_post(); 
    **endwhile; endif;** 

?>