列出子页面时,在foreach循环内重复Wordpress循环

时间:2015-07-27 09:08:25

标签: php wordpress

我创建了一个获取正确子页面及其内容的循环,但是它在foreach循环中错开/重复了页面内容。

框(按顺序)应显示以下内容:

专栏1:PRESS
方框2:电视节目
方框3:电台节目
方框4:画廊

然而,您可以看到它正在执行以下操作:

方框1:按
方框2:按,电视节目
方框3:新闻,电视节目,电台节目
方框4:新闻,电视节目,电台节目,画廊

<?php
    //get current page ID
    $the_id = get_the_ID();

    $args = array(
    'child_of'     => $the_id,
    'title_li'     => '',
    'parent'       => $the_id,
    'sort_order'    => 'DESC',
    'sort_column'   => 'menu_order'
    );

    $pages = get_pages( $args );

    $output = '';

    foreach($pages as $value){ ?>

    <div class="col-xs-12 col-sm-6">
        <div class="row">
            <div class="col-xs-12">
                <?php
                $thumb = get_the_post_thumbnail( $value->ID, $attr = ' img-responsive' );
                $output .= "<div class='thumbnailcontainer'><a href='" . $value->post_name . "' >" . $thumb  . "<span>" . $value->post_title . "</span></a></div>";

                echo $output;

                ?>
            </div>
        </div>
    </div>
    <?php } ?>

我尝试将posts_per_page限制为1但没有区别。

enter image description here

1 个答案:

答案 0 :(得分:2)

在第24行用 $ output = 替换 $ output。= 。:)我认为应该解决它。

或者您可以尝试的是:

<?php
    //get current page ID
    $the_id = get_the_ID();

    $args = array(
    'child_of'     => $the_id,
    'title_li'     => '',
    'parent'       => $the_id,
    'sort_order'    => 'DESC',
    'sort_column'   => 'menu_order'
    );

    $pages = get_pages( $args );

    $output = '';

    foreach($pages as $value) {
        $thumb = get_the_post_thumbnail( $value->ID, $attr = ' img-responsive' );
        $output .= "<div class='thumbnailcontainer'><a href='" . $value->post_name . "' >" . $thumb  . "<span>" . $value->post_title . "</span></a></div>";
    }
?>

    <div class="col-xs-12 col-sm-6">
        <div class="row">
            <div class="col-xs-12">
                <?=$output?>
            </div>
        </div>
    </div>

顺便说一下,尽量避免混用PHP和HTML! ;)