1

在我的父页面上,我有一个自定义页面模板调用另一个模板:

if( have_posts() ): while( have_posts() ): the_post(); ?>

<div class="wrapper">


<?php get_template_part( 'template', 'page-section' ); ?>

<?php endwhile; endif; wp_reset_postdata(); ?>

在 template-page-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();?>

在 template-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 在滑块模板中点击循环,它为帖子内容回显的信息不是父级的子帖子,而是父级内容。

谁能告诉我我做错了什么?我想不通!

4

1 回答 1

1

这只是一个未经测试的猜测,但请尝试以下操作:

模板页面section.php

$wpq = get_posts( $args );
if( $wpq ) {
    foreach( $wpq as $p )
    {
        if ( $p->ID == 101 ) {
            include( 'template-slider.php' );
        }
        ?>
            <div class="page-section">
                <h1><?php echo $p->post_title; ?></h1>
                <?php echo $p->post_content; ?>
            </div>
        <?php
    }
}

模板-slider.php

<div id="slider-container">
    <ul id="slider">
        <?php 
        $query_pages = get_pages( 
            array(
                'post_type' => 'slides',
                'orderby' => 'menu_order',
                'posts_per_page' => -1
        ));
        if( $query_pages )
        {
            foreach( $query_pages as $pg ) { 
                $image = wp_get_attachment_image_src( get_post_thumbnail_id( $pg->ID ), 'single-post-thumbnail', $thumbsize[0] ); ?>
                <li>
                <img src="<?php echo $image[0]; ?>">
                </li><?php 
            } 
        } ?>
    </ul>   
</div>

参考:什么时候应该使用 WP_Query、query_posts() 和 get_posts()?

于 2013-10-24T22:12:51.147 回答