下面是一个脚本,我仍然不确定如何让它工作,在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论坛。
答案 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。
希望有所帮助。