Wordpress自定义查询帖子Showposts号码

时间:2014-08-12 11:59:23

标签: php wordpress

下面是一个脚本,我仍然不确定如何让它工作,在Wordpress我有一个转发器字段,我可以输入一个月的天数,所以它创建日历方块给我在预订过程中突出显示。

我想要做的是让字段'how_many_days'运行一个循环,然后重复divs calendarPost的数量。所以理想情况下我可以输入单独数量的循环。

输出的实时版本在这里:http://universitycompare.com/school-bookings/

<?php if(get_field('calendar_repeater_field')): ?>
        <?php while(has_sub_field('calendar_repeater_field')): ?>
        <?php $numberoffields = get_sub_field('how_many_days'); ?>

        <?php $wp_query->query('showposts='.$numberoffields ); if (have_posts()) : while (have_posts()) : the_post(); ?>
        <div class="calendarPost">
            <span class="title"><?php the_sub_field('calendar_month_name'); ?><span class="circleOpen"></span></span>

        </div>
        <?php endwhile; endif; wp_reset_query(); ?>
        <?php endwhile; ?>
<?php endif; ?>

仅供参考 - 我不知道这是一个与PHP相关的问题还是只有WP,所以请告知这篇文章是否应该在其他地方,我会删除并重新发布在正确的stackoverflow论坛。

1 个答案:

答案 0 :(得分:1)

你的问题并没有完全解释你是否真的想要输出帖子,所以下面是几个建议。

我会从我认为你想要做的事情开始:

如果您只是想要反复输出div.calendarPost(基于天数),那么您不需要WordPress循环。标准PHP for循环将执行

<?php if ( get_field('calendar_repeater_field' ) ) : ?>
    <?php while ( has_sub_field('calendar_repeater_field' ) ) : ?>
        <?php $numberoffields = get_sub_field('how_many_days'); ?>
        <?php for ( $i=0; $i < $numberoffields; $i++ ) { ?>
            <div class="calendarPost">
                <span class="title"><?php the_sub_field('calendar_month_name'); ?><span class="circleOpen"></span></span>
            </div>
        <?php } ?>
    <?php endwhile; ?>
<?php endif; ?>

如果您想要输出帖子(根据ACF字段中的天数),那么您将使用以下代码。

<?php if ( get_field('calendar_repeater_field' ) ) : ?>
    <?php while ( has_sub_field('calendar_repeater_field' ) ) : ?>
        <?php $numberoffields = get_sub_field('how_many_days'); ?>
        <?php $calendar_posts = new WP_Query('posts_per_page=' . $numberoffields); ?>
        <?php if ( $calendar_posts->have_posts() ) : while ( $calendar_posts->have_posts() ) : $calendar_posts->the_post(); ?>
            <div class="calendarPost">
                <span class="title"><?php the_sub_field('calendar_month_name'); ?><span class="circleOpen"></span></span>
            </div>
        <?php endwhile; wp_reset_postdata(); endif; ?>
    <?php endwhile; ?>
<?php endif; ?>

有关详细信息,请参阅WP Codex的“使用情况”部分:http://codex.wordpress.org/Class_Reference/WP_Query

希望有所帮助。