Как получить название термина таксономии по его slug?
Функция, которую вы ищете, это get_term_by
. Вы можете использовать её следующим образом:
<?php $term = get_term_by('slug', 'my-term-slug', 'category'); $name = $term->name; ?>
В результате $term
будет объектом, содержащим следующие свойства:
term_id
name
slug
term_group
term_taxonomy_id
taxonomy
description
parent
count
Кодекс отлично объясняет эту функцию: https://developer.wordpress.org/reference/functions/get_term_by/

Вы можете использовать get_term( $term_id );
, если у вас есть только ID.

Этот метод предоставляет решение, когда таксономия недоступна/неизвестна.
В моём случае, при использовании get_term_by, были ситуации, когда доступен был только слаг термина (без ID термина или таксономии). Это привело меня сюда. Однако, предоставленное решение не совсем решило мою проблему.
Решение для пустой $taxonomy
// Мы хотим найти ID для этого слага.
$term_slug = 'foo-bar';
$taxonomies = get_taxonomies();
foreach ( $taxonomies as $tax_type_key => $taxonomy ) {
// Если объект термина возвращён, выходим из цикла. (Возвращает false, если объекта нет)
if ( $term_object = get_term_by( 'slug', $term_slug , $taxonomy ) ) {
break;
}
}
$term_id = $term_object->name;
echo 'ID термина: ' . $term_id . '<br>';
var_dump( $term_object );
Результат
ID термина: 32
object(WP_Term)
public 'term_id' => int 32
public 'name' => string 'Example Term'
public 'slug' => string 'example-term'
public 'term_group' => int 0
public 'term_taxonomy_id' => int 123
public 'taxonomy' => string 'category'
public 'description' => string ''
public 'parent' => int 0
public 'count' => int 23
public 'filter' => string 'raw'
Как видно, концепция заключается в получении массива $taxonomies
, переборе этого массива, и ЕСЛИ get_term_by()
возвращает совпадение, то сразу же происходит выход из цикла foreach.
Примечание: Я пытался найти метод для получения связанной таксономии (ID или слаг) по слагу термина, но, к сожалению, не нашёл ничего доступного в WordPress.

спасибо, это сработало для меня.
Я создал функцию и использую её снова и снова по мере необходимости.
function helper_get_taxonomy__by_slug($term_slug){
$term_object = "";
$taxonomies = get_taxonomies();
foreach ($taxonomies as $tax_type_key => $taxonomy) {
// Если объект термина получен, прерываем цикл. (Возвращает false, если объекта нет);
if ($term_object = get_term_by('slug', $term_slug, $taxonomy)) {
break;
}else{
$term_object = "Внимание! Вспомогательная таксономия не найдена.";
}
}
return $term_object;
}
