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

时间:2017-02-15 00:14:52

标签: php wordpress filter custom-taxonomy taxonomy-terms

所以我试图实现以下目标。

我的代码到目前为止..

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. 即使没有分配给查询分类的帖子,我还需要添加哪些代码才能仍然返回已修改的$title

1 个答案:

答案 0 :(得分:0)

将您的代码更改为:

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()返回一个术语数组数组,因此您还需要使用[0]索引获取结果的第一个元素,然后链接['name']索引以获取其名称术语