echo a tax term in loop

时间:2018-09-22 作者:Joe Barrett

对于列表中的每个项目,我需要在

  • 之后在此循环中回显CPT的一个术语。感谢您的指导或帮助。原始代码来自Stackoverflow。com,因为它起作用了。

     <?php
    $da_place = get_field(\'smart_place\'); //acf field
    
        $args = array(
            \'post_type\' => \'to_do_items\',
            \'tax_query\' => array(
                relation => \'AND\',
                array(
                    \'taxonomy\' => \'days\',
                    \'field\'    => \'slug\',
                    \'terms\'    => \'tuesday\',
                ),
                array(
                    \'taxonomy\' => \'places\',
                    \'field\'    => \'slug\',
                    \'terms\'    => $da_place,
                ),
            ),
        );
        $the_query = new WP_Query( $args );    
    ?> Tuesday <?
    
    // The Loop
    if ( $the_query->have_posts() ) {
    
        echo \'<ul>\';
        while ( $the_query->have_posts() ) {
            $the_query->the_post();
    
            echo \'<li>\' . get_the_title() . \'\';
            echo  \'</li>\' ;
    echo $specialTermHere;
        }echo \'</ul>\';
        /* Restore original Post Data */
        wp_reset_postdata();
    } else {
        echo \'Nothing Today\';
        // no posts found
    } 
    
    //end of Tues
    ?>
    

  • 1 个回复
    SO网友:Tung Du

    我想你想得到每个帖子的术语链接。我会解释你应该如何得到这个答案。

    首先,您需要获取当前帖子的术语对象。支持你的分类法名称是“你的分类法”;

    $terms = get_the_terms( $post_id, \'your_taxonomy\' );
    
    因为$term 这是一个数组,在大多数情况下,您将需要第一个数组:

    $term = $terms[0];
    
    然后,您可以使用get_term_link 作用您可以使用printf 要使代码更易于阅读,请执行以下操作:

    printf(
        \'<a href="%1$s" title="%2$s">%2$s</a>\',
        esc_url( get_term_link( $term ) ),
        esc_html( $term->name )
    );
    
    因为您将在一个循环中编写此代码,所以可以使用两个参数(post ID和taxonomy name)将所有逻辑封装在一个函数中。

    结束

    相关推荐

    `Get_Terms()`,其中`Child_of`和`Child_less`组合

    我有一个层次分类法filter 包含自定义类型帖子的位置和类型artist:- Genre -- Hip Hop -- Trap -- Rap - Location -- Europe --- Germany --- Sweden --- Austria -- Asia --- China --- Japan --- Taiwan 现在,我想使用get\\u terms()只获取国家(Location