这个问题已经问了很多遍了,但是我找不到解决方案。我的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知识,我尝试了很多,但是找不到任何解决方案。希望我能够正确解释。
谢谢 朱拉什
答案 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',
),
)
)
);
根据要求编辑的答案