如何从查询的对象中获取分类术语名称

How to get taxonomy term name from a queried object

所以我正在努力实现以下目标。

到目前为止我的代码..

add_filter('wpseo_title', 'vehicle_listing_title');
function vehicle_listing_title( $title ) 
{
  if ( get_post_type() == 'vehicles' )
  {
    $location = get_the_terms($post->ID, 'vehicle_location');
    $model = get_the_terms($post->ID, 'vehicle_model');
    $title = $model . 'used cars for sale in' . $location .'on'. get_bloginfo('name');
  }
  return $title;
}
  1. 此代码导致 $location & $model 成为包含以下 term_id =>,name=>,slug=>,term_group=>,etc 的对象,所以我想获取其中的 name 部分.
    我该怎么做?

  2. 我必须在代码中添加什么才能使 return 修改后的 $title 即使没有任何帖子分配给查询的分类法?

将您的代码更改为:

add_filter('wpseo_title', 'vehicle_listing_title');

function vehicle_listing_title( $title ) 
{
  if ( get_post_type() == 'vehicles' )
  {
    $location = get_the_terms($post->ID, 'vehicle_location');
    $model = get_the_terms($post->ID, 'vehicle_model');
    $title = '';

    if($model && $model[0]) $title .= $model[0]->name . ' used';
    else $title .= 'Used';

    $title .= ' cars for sale';

    if($location && $location[0]) $title .= ' in ' . $location[0]->name;

    $title .= ' on ' . get_bloginfo('name');

    return $title;
  }

  return $title;
}

基本上,您需要使用 IF 来构建您的标题,以检查是否可以获得模型和位置的术语数组。此外,wp_terms() returns 术语数组的数组,因此您还需要使用 [0] 索引获取结果的第一个元素,然后链接 ['name'] 索引以获取术语的名称。