我已经使用此代码来过滤自定义帖子类型的$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工作。
我一直在努力解决这个问题。 任何帮助将不胜感激
答案 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存档。