按木材分类法对自定义帖子类型进行分组(Wordpress)

按木材分类法对自定义帖子类型进行分组(Wordpress),wordpress,custom-post-type,taxonomy,timber,Wordpress,Custom Post Type,Taxonomy,Timber,我很难弄清楚如何在Wordpress中将带有相同分类法“年”的帖子集合分组,而不使用单独的归档模板 我最终设法让它与Wordpress一起工作,但现在我想把它翻译成timber,而我似乎无法做到这一点。谁能给我一些指点吗 这是有效的wordpress代码 $date_now = date('Y-m-d H:i:s'); $ex_terms = get_terms( 'exhibition-year','orderby=name&order=desc' ); foreach ( $ex_

我很难弄清楚如何在Wordpress中将带有相同分类法“年”的帖子集合分组,而不使用单独的归档模板

我最终设法让它与Wordpress一起工作,但现在我想把它翻译成timber,而我似乎无法做到这一点。谁能给我一些指点吗

这是有效的wordpress代码

$date_now = date('Y-m-d H:i:s');
$ex_terms = get_terms( 'exhibition-year','orderby=name&order=desc' );

foreach ( $ex_terms as $ex_term ) {
    $member_group_query = new WP_Query(
        array(
            'post_type' => 'exhibition',
            'tax_query' => array(
                array(
                'taxonomy' => 'exhibition-year',
                'field' => 'slug',
                'terms' => array( $ex_term->slug ),
                'operator' => 'IN'
                )
            ),
            'meta_query'        => array(
                array(
                'key'           => 'date_end',
                'compare'       => '<',
                'value'         => $date_now,
                'type'          => 'DATETIME'
                )
            )
        )
    );

    if($ex_term->slug <= date('Y')){
    ?>
        <h2><?php echo $ex_term->name; ?></h2>
        <ul>
        <?php
        if ( $member_group_query->have_posts() ) : while ( $member_group_query->have_posts() ) : $member_group_query->the_post(); ?>
            <li><?php echo the_title(); ?></li>
        <?php endwhile; endif; ?>
        </ul>
        <?php
        // Reset things, for good measure
        $member_group_query = null;
        wp_reset_postdata();
    }
}
$date\u now=date('Y-m-dh:i:s');
$ex_terms=get_terms(‘展览年’、‘orderby=name&order=desc’);
foreach($ex_条款作为$ex_条款){
$member\u group\u query=新的WP\u查询(
排列(
“post_类型”=>“展览”,
“tax_query”=>数组(
排列(
“分类法”=>“展览年”,
'字段'=>'段塞',
“术语”=>数组($ex_term->slug),
'运算符'=>'输入'
)
),
“元查询”=>数组(
排列(
“键”=>“日期”,

'比较'=>'对查询的两个更改

  • 元查询中的当前时间戳
  • 在与本年度比较之前,转换为
    整数
    类型

    $current=当前时间(“时间戳”); $ex_terms=get_terms('Exposition year','orderby=name&order=desc')

    foreach($ex_条款作为$ex_条款):

    $member\u group\u query=new WP\u query(
    排列(
    “post_类型”=>“展览”,
    “tax_query”=>数组(
    排列(
    “分类法”=>“展览年”,
    '字段'=>'段塞',
    “术语”=>数组($ex_term->slug),
    '运算符'=>'输入'
    )
    ),
    “元查询”=>数组(
    排列(
    “键”=>“日期”,
    
    'compare'=>'@CKDT这是未经测试的,但这里有一个在Timber中重新写入的驱动器

    PHP
    $date\u now=date('Y-m-dh:i:s');
    $ex_terms=Timber::get_terms(‘展览年’、‘orderby=name&order=desc’);
    foreach($ex_terms as和$ex_term){
    $member\u group\u query=Timber::get\u posts(
    排列(
    “post_类型”=>“展览”,
    “tax_query”=>数组(
    排列(
    “分类法”=>“展览年”,
    '字段'=>'段塞',
    “术语”=>数组($ex_term->slug),
    '运算符'=>'输入'
    )
    ),
    “元查询”=>数组(
    排列(
    “键”=>“日期”,
    
    'compare'=>'实际上没有,您做了一些小的代码清理。问题是我如何在timberwp中重新创建此代码
    $member_group_query = new WP_Query(
        array(
            'post_type' => 'exhibition',
            'tax_query' => array(
                array(
                    'taxonomy' => 'exhibition-year',
                    'field' => 'slug',
                    'terms' => array( $ex_term->slug ),
                    'operator' => 'IN'
                )
            ),
            'meta_query'        => array(
                array(
                    'key'           => 'date_end',
                    'compare'       => '<',
                    'value'         => $current
                )
            )
        )
    );
    
    if( (int)$ex_term->slug <= date('Y')):
    
        echo '<h2>'.$ex_term->name.'</h2>';
        echo '<ul>';
    
        if ( $member_group_query->have_posts() ) : 
    
            while ( $member_group_query->have_posts() ) : $member_group_query->the_post();
    
                echo '<li>'.get_the_title().'</li>';
    
            endwhile; 
    
        endif;
    
        echo '</ul>';
    
    endif;
    
    $member_group_query = null;
    wp_reset_postdata();
    
    $date_now = date('Y-m-d H:i:s');
    $ex_terms = Timber::get_terms( 'exhibition-year','orderby=name&order=desc' );
    
    foreach ( $ex_terms as &$ex_term ) {
        $member_group_query = Timber::get_posts(
        array(
            'post_type' => 'exhibition',
            'tax_query' => array(
                array(
                'taxonomy' => 'exhibition-year',
                'field' => 'slug',
                'terms' => array( $ex_term->slug ),
                'operator' => 'IN'
                )
            ),
            'meta_query'        => array(
                array(
                'key'           => 'date_end',
                'compare'       => '<',
                'value'         => $date_now,
                'type'          => 'DATETIME'
                )
            )
        ));
        $ex_term->events = $member_group_query;
        if( $ex_term->slug <= date('Y') ){
            $ex_term->past = true;
        }
    }
    $context['ex_terms'] = $ex_terms;
    Timber::render('my-file.twig', $context);
    
    {% for term in ex_terms %}
        {% if term.past %}
            <h2>{{ term.name }}</h2>
            <ul>
            {% for post in term.events %}
                <li>{{ post.title }}</li>
            {% endfor %}
            </ul> 
    {% endfor %}