1

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

到目前为止我的代码..

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即使没有分配给查询的分类法的任何帖子,我必须在代码中添加什么才能返回修改后的内容?

4

1 回答 1

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']索引以获取术语的名称。

于 2017-02-15T02:02:12.087 回答