如何在帖子类型存档上正确过滤帖子类型标题?

时间:2017-03-07 09:19:36

标签: wordpress filter seo title custom-post-type

我已经使用此代码来过滤自定义帖子类型的$title,并且在搜索结果时它可以正常运行,例如在巴黎出售的梅赛德斯奔驰汽车的查询会显示$title像这样Mercedes Benz used cars for sale in Paris on Sitename

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[0]->name . 'used cars for sale in' . $location[0]->name .'on'. get_bloginfo('name');
  }
  return $title;
}

但话又说回来,当没有任何搜索结果时,代码会返回一个单词的标题,例如在巴黎出售的梅赛德斯奔驰汽车的查询会显示$title这样Mercedes Benz archives – Sitename 我需要这个来为所有搜索查询返回已过滤的$title,因为我有一个站点地图从自定义帖子类型中提取这些链接。所以我显然需要这个来为SEO工作。

我一直在努力解决这个问题。 任何帮助将不胜感激

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 = $model[0]->name . 'used cars for sale in' . $location[0]->name .'on'. get_bloginfo('name');
  }else{
     $title = 'Sorry there are no' . $model[0]->name . 'used cars for sale in' . $location[0]->name .'on'. get_bloginfo('name');
  }

return $title;
}

如果这不起作用,可能会:

elseif(/*there are no results or post_count = 0 */)

对于含糊不清的其他内容感到抱歉,但我不确定您是如何获得结果的,如果是搜索或CPT存档。