我如何从帖子中访问单个术语?

时间:2018-06-19 作者:Philipp K

我需要从自定义分类法访问特定术语的帮助。

我正在与

 $terms = wp_get_post_terms($post->ID, \'mytax\', array("fields" => "all"));
如果我print_r($terms) 这就是我得到的:

Array ( 
    [0] => WP_Term Object ( 
        [term_id] => 30 
        [name] => Term1 
        [slug] => term1 
        [term_group] => 0 
        [term_taxonomy_id] => 30 
        [taxonomy] => mytax 
        [description] => 
        [parent] => 0 
        [count] => 78 
        [filter] => raw 
    ) 
    [1] => WP_Term Object ( 
        [term_id] => 32 
        [name] => Term2 
        [slug] => term2 
        [term_group] => 0 
        [term_taxonomy_id] => 32 
        [taxonomy] => mytax 
        [description] => 
        [parent] => 30 
        [count] => 44 
        [filter] => raw 
    ) 
)
如何从该数组中提取Term1的ID?

2 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

很难确定,你到底在问什么,但是。。。让我试着回答。。。

所以在single.php 您正在使用以下代码获取当前帖子的条款:

$terms = wp_get_post_terms($post->ID, \'mytax\', array("fields" => "all"));
你想从列表中获取第一个术语的ID吗?

如果是这样,您可以通过以下代码实现这一点:

$terms = wp_get_post_terms($post->ID, \'mytax\', array("fields" => "all"));
$term_id = false;
if ( $terms ) {
    $term_id = $terms[0]->term_id;
}

SO网友:Pat J

如果你想这样做的话,你可以抓住一个术语。

使用get_term_by():

$term = get_term_by( \'name\', \'Term1\', \'mytax\' );
应提供WP_Term 名称为的术语的Term1 在分类学中mytax.

[编辑]Get the first term:

$terms = wp_get_post_terms( $post->ID, \'mytax\', array( "fields" => "all" ) );
if ( ! empty( $terms ) ) {
    $term = $terms[0];
    $term_id = $terms[0]->term_id; // If you just need the term ID.
}
这将从原始问题列表中获取第一个术语。但是,请注意,默认情况下,wp_get_post_terms() 按其升序对术语进行排序name 领域You can modify this using order and orderby in the $args parameter:

$args = array(
    \'fields\'  => \'all\',
    \'orderby\' => \'slug\',
    \'order\'   => \'DESC\',
    // ...for example.
);
$terms = wp_get_post_terms( $post->ID, \'mytax\', $args ) );
if ( ! empty( $terms ) ) {
    $term = $terms[0];
    $term_id = $terms[0]->term_id; // If you just need the term ID.
}

结束

相关推荐

WP_SET_OBJECT_TERMS()不向自定义帖子和自定义分类添加新术语

我正在使用自定义分类法创建自定义帖子类型,同时为自定义帖子提交前端表单。它正在创建帖子,但并没有创建我已经设置的新分类法,只需要添加自定义分类法<form action=\'\' method=\"post\" id=\"drop_message\"> <div class=\"input-group\"> <div class=\"first\"> <label for=\"first-name-opt\"&g