好吧,我有一个包含系列的wordpress网站,每个系列都包含情节,我有这段代码来获取isSpecial = 1的系列,然后边做边获取每个动漫的限制为3个系列。
// Here getting the series
$args=array(
'orderby' => 'DESC',
'post_type' => array( 'series', 'movies' ),
'meta_query' => array(array( 'key' => 'isSpecial', 'compare' => '=','value' => '1'))
);
$animes = new WP_Query( $args );
set_transient( 'animes', $trslidermoved_query_results, 12 * HOUR_IN_SECONDS );
// do while for series
$i=0;
while( $animes->have_posts() ) {
$animes->the_post();
$i++;
$animeID[$i] = $post->ID;
$args = array(
'orderby' => 'meta_value_num',
'order' => 'DESC',
'fields' => 'all',
'meta_query' => [['key' => 'episode_number','type' => 'NUMERIC',]]
);
$episodes[$i] = wp_get_post_terms(intval( $animeID[$i] ), 'episodes', $args );
// foreach for episodes
foreach (array_slice($episodes[$i], 0, 3) as $episode) {
} // end foreach
} // end while
现在我要做的是将所有剧集的数量限制为10个
剧集[1]可能获得3集
剧集[2]可能获得3集
剧集[3]可能会获得2集
剧集[4]可能会获得3集
使用我的代码将显示11集,但我只想限制10集。
所以我想限制所有foreach的总和,而不是每个foreach。
答案 0 :(得分:2)
您可以做的是合并所有情节/帖子,然后对该数组进行切片以获得前10个,例如
$all_episodes = [];
while () {
[...]
array_merge($all_episodes, array_slice($episodes[$i], 0, 3));
}
# Then loop through the first 10 items
foreach (array_slice($all_episodes, 0, 10) as $episode) {
...
}