Как получить название термина таксономии слизняком?

22

Если я знаю слаг-термин таксономии, как я могу получить название этого термина?

Carson
источник
Вы хотите создать ссылку, название, ???
xLRDxREVENGEx

Ответы:

38

Функция, которую вы ищете, это 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

Кодекс делает большую работу, объясняя эту функцию: http://codex.wordpress.org/Function_Reference/get_term_by

tollmanz
источник
Ты подтолкнул меня на это. Это именно то, что я хотел бы сделать.
xLRDxREVENGEx
1
Что если у вас нет таксономического слизняка?
EkoJR
2

Это дает ответ, когда таксономия недоступна / неизвестна .

В моем случае, при использовании get_term_by , были некоторые случаи, когда был только термин Term Slug (без идентификатора термина или таксономии). Что привело меня сюда. Тем не менее, предоставленный ответ не совсем решил мою проблему.

Решение для пустых $taxonomy

// We want to find the ID to this slug.
$term_slug = 'foo-bar';
$taxonomies = get_taxonomies();
foreach ( $taxonomies as $tax_type_key => $taxonomy ) {
    // If term object is returned, break out of loop. (Returns false if there's no object)
    if ( $term_object = get_term_by( 'slug', $term_slug , $taxonomy ) ) {
        break;
    }
}
$term_id = $term_object->name;

echo 'The Term ID is: ' . $term_id . '<br>';
var_dump( $term_object );

Результат

The Term ID is: 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, проходит по массиву и IF get_term_by()возвращает совпадение, а затем немедленно выходит из цикла foreach.

Примечание. Я попытался найти метод для получения связанной таксономии (идентификатора или слаг) от Term Slug, но, к сожалению, я не могу найти ничего доступного в WordPress.

EkoJR
источник
0

спасибо, это сработало для меня.

Я создал функцию и использую ее снова и снова по мере необходимости.

function helper_get_taxonomy__by_slug($term_slug){
    $term_object = "";
    $taxonomies = get_taxonomies();
    foreach ($taxonomies as $tax_type_key => $taxonomy) {
        // If term object is returned, break out of loop. (Returns false if there's no object);
        if ($term_object = get_term_by('slug', $term_slug, $taxonomy)) {
            break;
        }else{
            $term_object = "Warn! Helper taxonomy not found.";
        }
    }
    return $term_object;
}
Махеш Четри
источник