get term id from term name

时间:2021-05-01 作者:Gidromasservis QSC

嗨,我正在尝试从术语名称(标题)中获取术语id。

 <?php
    if ($_SERVER["REQUEST_METHOD"] == "GET") {
        // collect value of input field
     $nameb = $_GET[\'fname2\'];
     $namea = $_GET[\'fname\'];
}

// $nameb = Dolce+Gabana ;

// $namea = Nike+Company;

    
    ?>
在上面的代码中,php变量等于术语名称。但如何从术语名称中获取术语id呢。我使用自定义分类法

1 个回复
最合适的回答,由SO网友:anton 整理而成

尝试使用get_term_by(), 其中第一个参数是一个字段,在您的案例中是名称。其次是你的价值。我用过esc_attr() 使其安全。第三个是分类学,我在这里举了一个例子category.

if ($_SERVER["REQUEST_METHOD"] == "GET" && $_GET[\'fname2\'] && $_GET[\'fname\']) {

    $nameb = get_term_by(\'name\', esc_attr($_GET[\'fname2\']), \'category\');
    $namea = get_term_by(\'name\', esc_attr($_GET[\'fname\']), \'category\');

}

//check if there is an objects 
if( $nameb instanceof WP_Term && $nameb instanceof WP_Term ){
     echo $nameb->term_id;
     echo $namea->name;
}
参考一些示例-here

返回的对象:

(object) array(
   \'term_id\' => 49,
   \'name\' => \'Term Name\',
   \'slug\' => \'term-name\',
   \'term_group\' => 0,
   \'term_taxonomy_id\' => 49,
   \'taxonomy\' => \'category\',
   \'description\' => \'\',
   \'parent\' => 0,
   \'count\' => 286,
   \'filter\' => \'raw\',
)