将POST内容存储在php变量中,并使用for循环输出它们

时间:2015-10-09 作者:Saif Islam

我想在一个单独的行中显示我帖子的内容,每当单击选项卡时,一次显示一个。我已经做到了这一点,但问题是,它只显示最后一个选项卡的输出。其他选项卡没有任何作用。

我想我需要一个for循环来将所有内容存储在一个数组中,然后输出到第二行。

<div class="page-tile row">
<?php $i = 0; ?>
<?php while( $page_query->have_posts() ) : $page_query->the_post(); ?>
<div class="tile col-lg-2 col-md-2 col-sm-2 col-xs-12">
    <a class="nav nav-tabs" role="tablist" href="#collapse-<?php the_ID(); ?>" data-toggle="tab" aria-expanded="false" aria-controls="collapse-<?php the_ID(); ?>">
        <?php the_post_thumbnail("kontakt-thumb",array(\'class\' => \'img-responsive\')); ?> 
    </a>
</div>

<?php ob_start() ?>
    <div class="kontakt-content tab-content">
        <div class="tab-pane" role="tabpanel" id="collapse-<?php the_ID(); ?>">  <?php echo the_content(); ?> </div>
    </div>
<?php $output = ob_get_clean(); ?>

<?php $i++; ?>    
<?php endwhile; ?>       

单击选项卡时需要显示以下内容。 <div class="row"> <?php echo $output; ?> </div>

1 个回复
最合适的回答,由SO网友:Landing on Jupiter 整理而成

每次迭代循环时,都会覆盖$output,这就是为什么只获取最后一个选项卡的数据。通过将$output的值存储为数组,可以避免这种情况。下面是一个基于您的代码的示例。我的编辑遵循每个注释块。

<?php
/*
 * Create an empty array
 */
?>
<?php $outputs = array(); ?>

<div class="page-tile row">
    <?php $i = 0; ?>
    <?php while ( $page_query->have_posts() ) : $page_query->the_post(); ?>
        <div class="tile col-lg-2 col-md-2 col-sm-2 col-xs-12">
            <a class="nav nav-tabs" role="tablist" href="#collapse-<?php the_ID(); ?>" data-toggle="tab" aria-expanded="false" aria-controls="collapse-<?php the_ID(); ?>">
                <?php the_post_thumbnail( "kontakt-thumb", array( \'class\' => \'img-responsive\' ) ); ?> 
            </a>
        </div>

        <?php ob_start() ?>
        <div class="kontakt-content tab-content">
            <div class="tab-pane" role="tabpanel" id="collapse-<?php the_ID(); ?>">  <?php echo the_content(); ?> </div>
        </div>

        <?php
        /*
         * Store the data with a new array key
         */
        ?>
        <?php $outputs[] = ob_get_clean(); ?>

        <?php $i++; ?>    
    <?php endwhile; ?>
现在,对于选项卡,遍历数组。

<div class="row">
    <?php
    /*
     * Iterate through the array
     */
    foreach( $outputs AS $output ) { 
        echo $output;
    }
    ?>
</div>

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请