我正在使用 Timber 插件将标准 WordPress 主题移动到 Twig 模板中。
我的目标是按日期列出一个名为 cpt_shows (事件)的自定义帖子类型,但让它们按艺术家列出和分组。例如:
Artist A
event - April 1
event - May 1
event - June 1
Artist B
event - April 1
event - May 1
event - June 1
Artist C
event - April 1
event - May 1
event - June 1
我没有在原始模板中使用带有以下代码的 twig 来完成这项工作:
$today = current_time('Ymd');
$args = array(
'orderby' => 'post_title',
'category_name' => 'events',
'exclude' => 28
);
$cats = get_categories( $args );
foreach( $cats as $cat ) :
$args = array(
'post_type' => 'cpt_shows',
'meta_query' => array(
array(
'key' => 'date',
'compare' => '>=',
'value' => $today,
'type' => 'NUMERIC,'
)
),
'meta_key' => 'date',
'orderby' => 'meta_value',
'order' => 'ASC',
'posts_per_page' => -1,
'category__in' => array( $cat->term_id ),
'ignore_sticky_posts' => 1
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
echo '<h2><a href="' . get_category_link( $cat->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $cat->name ) . '" ' . '>' . $cat->name.'</a></h2> ';
while( $query->have_posts() ) : $query->the_post();
?>
<a href="<?php the_permalink();?>"><?php the_title(); ?></a><br>
<?php
endwhile;
wp_reset_postdata();
}
endforeach;
我无法解决的是如何将其移动到我的 Twig 模板中,因为我的逻辑代码中有模板,特别是 'category__in' => array( $cat->term_id ),正在循环中设置。我在 Twig 中尝试过类似的东西
{% for cat in categories %}
{% for post in loopSetupinContext %}
没有成功。有没有更好的方法来做到这一点?简而言之,我有一个输出解决方案,但我不确定如何将它移到 Timber/Twig 中。
任何帮助是极大的赞赏。