限制条件的foreach循环

时间:2018-07-10 07:16:45

标签: php wordpress foreach wordpress-theming advanced-custom-fields

这个问题已经问了很多遍了,但是我找不到解决方案。我的PHP知识非常有限。

我正在建立一个wordpress网站,那里有一个称为“系列”的自定义分类法。该网站将有许多系列,我正在使用自定义字段对系列进行分组。因此,很容易将前端的系列活动分组组织。

这里是显示“系列”(https://pastiebin.com/5b445ae944a13)的代码:

<?php $x = 0; foreach ( $new_mod_series as $cat ): ?>

   <?php $seriestype = get_field( "series_type", $cat ); ?>

   <?php while ( $seriestype == "interview" and $cat_post->have_posts() ): $cat_post->the_post(); ?>

      Show interview series...

   <?php endwhile; ?>

<?php if (++$x == 5) break; endforeach; ?>

这段代码<?php $seriestype = get_field( "series_type", $cat ); ?>不会在foreach循环之外运行,这样我就可以获取“系列类型”自定义字段的值。然后,我在一段时间内使用$seriestype == "interview"仅显示采访的系列。

现在我没有得到预期或foreach结果为5,因为仅限制了要显示的“采访”系列。但是我需要在一个部分中展示5个最近的访谈系列,然后在另一个系列中展示其他5个系列。

总有办法解决我的问题吗?以我有限的php知识,我尝试了很多,但是找不到任何解决方案。希望我能够正确解释。

谢谢 朱拉什

1 个答案:

答案 0 :(得分:0)

为什么不通过自定义字段查询?这样您就不会有两次相同的查询(即使现在也只能使用一次)。有关您的问题https://www.advancedcustomfields.com/resources/query-posts-custom-fields/

,请参阅此处的acf文档

简而言之:

new WP_Query( array( 'post_type' => 'post', 'tax_query' => array( array( 'taxonomy' => 'series', 'field' => 'term_id', 'terms' => $cat->term_id, ) ), 'posts_per_page' => 1, 'ignore_sticky_posts' => 1, 'meta_query' => array( array( 'key' => 'series_type', 'value' => $mod_series, 'compare' => 'IN', ), ) ) );

根据要求编辑的答案