在我父頁面,我有一個自定義頁面模板調用另一個模板:WordPress的循環
if(have_posts()): while(have_posts()): the_post(); ?>
<div class="wrapper">
<?php get_template_part('template', 'page-section'); ?>
<?php endwhile; endif; wp_reset_postdata(); ?>
內模板頁面section.php,我有以下幾點:
<?php
/*
Template Name: Page Section
*/
$args = array(
'post_parent' => 9,
'post_type' => 'page',
'orderby' => 'menu_order',
'posts_per_page' => -1,
'order' => 'ASC'
);
$wpq = new WP_Query($args); ?>
<?php while ($wpq->have_posts()) : $wpq->the_post(); ?>
<?php if ($post->ID == 101) {
include('template-slider.php');
} ?>
<div class="page-section">
<h1><?php the_title(); ?></h1>
<?php /* The loop */ ?>
<?php the_content(); ?>
</div>
<?php endwhile; wp_reset_postdata();?>
在模板-slider.php,如下:
<div id="slider-container">
<ul id="slider">
<? $query = get_pages(
array(
'post_type' => 'slides',
'orderby' => 'menu_order',
'posts_per_page' => -1
));
foreach($query as $post) {
setup_postdata($post); ?>
<?php $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'single-post-thumbnail', $thumbsize[0]); ?>
<li>
<img src="<?php echo $image[0]; ?>">
</li>
<?php } wp_reset_postdata(); ?>
</ul>
</div>
的問題是,一旦WordPress的命中內環路滑塊模板,它對於帖子內容迴應的信息不是父母的子帖子,而是父母的內容。
誰能告訴我我做錯了什麼?我無法弄清楚!
在'template-slider.php'文件中,您不需要包含'setup_postdata($ post);'行,因爲'get_pages()'將在數組中包含帖子ID。此外,您可能希望重新命名'$ post',因爲它是全局WP使用的;不知道這裏是否有問題。 – Indranil