Как получить название термина таксономии из запрашиваемого объекта

Поэтому я пытаюсь добиться следующего.

Мой код до сих пор ..

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

Решение

Измените свой код на это:

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'] Индекс, чтобы получить название термина.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]