foreach语句中的wordpress循环

时间:2014-03-04 07:33:59

标签: php foreach wordpress

我正在尝试为电台节目网站制作节目。 我有一个自定义字段,一周中的所有日子,我只想把每个帖子放在相应日期的列表中。

到目前为止,我已经获得了下面的代码,我列出了所有日子的7个列表,但每个列表都有相同的帖子。有谁知道如何使这项工作?或者其他什么会更好?

<?php
$days = array(
    'Monday',
    'Tuesday',
    'Wednesday',
    'Thursday',
    'Friday',
    'Saturday',
    'Sunday',
);

$guide = array(
    'post_type' => 'shows',
    'posts_per_page' => -1,
    'meta_query' => array(
        array(
            'key' => 'show_day',
            'value' => $dayg,
            'compare' => 'like'
            )
        )
    );
?>

<h3 class="guide">
    <?php the_title(); ?>
</h3>
<?php foreach($days as $dayg) { ?>

    <ul class="day">
        <h3>
            <?php echo $dayg; ?>
        </h3>

        <?php query_posts($guide); while(have_posts()) : the_post(); ?>

        <li><?php the_title(); echo ' | ' , the_field('show_day'); ?></li>

        <?php endwhile; wp_reset_query(); ?>

    </ul>

<?php } ?>

任何人都知道

1 个答案:

答案 0 :(得分:2)

用以下代码替换您的代码: -

<?php
$days = array(
    'Monday',
    'Tuesday',
    'Wednesday',
    'Thursday',
    'Friday',
    'Saturday',
    'Sunday',
);
?>

<h3 class="guide">
    <?php the_title(); ?>
</h3>
<?php foreach($days as $dayg) { ?>

<?php 
$guide = array(
        'post_type' => 'shows',
        'posts_per_page' => -1,
        'meta_query' => array(
                array(
                        'key' => 'show_day',
                        'value' => $dayg,
                        'compare' => 'like'
                )
        )
);
?>
    <ul class="day">
        <h3>
            <?php echo $dayg; ?>
        </h3>
        <?php query_posts($guide); while(have_posts()) : the_post(); ?>

        <li><?php the_title(); echo ' | ' , the_field('show_day'); ?></li>

        <?php endwhile; wp_reset_query(); ?>
    </ul>
<?php } ?>

这样可行,因为您要在循环外添加$guide变量,这就是为什么$dayg未设置...