这个问题已经问了很多遍了, 但是我找不到解决方案。我的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”来显示仅接受采访的系列。
现在我并没有获得预期或5个foreach结果, 因为仅限制了要显示的”采访”系列。但是我需要在一个部分中展示5个最近的采访系列, 然后在另一个系列中展示其他5个系列。
反正有解决我的问题的方法吗?以我有限的php知识, 我尝试了很多, 但是找不到任何解决方案。希望我能够正确解释。
谢谢朱拉什
#1
为什么不通过自定义字段查询?这样你就不会有两次相同的查询(即使现在也只能使用一次)。有关你的问题, 请参阅此处的acf文档https://www.advancedcustomfields.com/resources/query-posts-custom-fields/
简而言之:
新的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’, ), )));
根据要求编辑答案
评论前必须登录!
注册