✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Как получить таксономию WordPress по идентификатору термина

33

Иногда при работе над проектом бывают моменты, когда было бы неплохо иметь функцию API, помогающую достичь всего, что нужно сделать. Показательный пример: возможность получить таксономию по идентификатору термина.

Конечно, это несложно сделать, но всегда приятно иметь возможность извлекать информацию из уже существующих функций.

Но когда это невозможно, мы пишем свой собственный способ сделать это, верно?

Получить таксономию по идентификатору термина

Когда я намереваюсь сделать что-то подобное, я обычно запускаю эту идею у пары других разработчиков, чтобы убедиться, что я не упускаю какую-то функцию, которая существует в ядре WordPress, и я просто не знаю о ней.

(Это происходит чаще, чем вы думаете, но это может быть большей проблемой с моей стороны, чем что-либо еще. Тем не менее, WordPress — это большая часть программного обеспечения :).

Вариант использования для чего-то подобного прост:

  • У меня есть идентификатор термина, который был сохранен в базе данных с помощью других средств (например, элемента выбора в другом месте приложения, например на панели инструментов).
  • Я хочу отобразить имя таксономии, связанное с этим идентификатором термина.

Концептуально я думаю об этом как об обратном взгляде. Обычно мы можем взять таксономию и просмотреть ее термины. Но таксономия по термину ID идет в другом направлении.

К счастью, это достаточно просто, если вы используете существующий API. Проверьте это :

<?php

/**
 * Retrieves the taxonomy name associated on the specified $term_id. 
 *
 * @access private
 * @param  int    $term_id  The term ID from which to retrieve the taxonomy name.
 * @return string $taxonomy The name of the taxaonomy associated with the term ID.
 */
private function get_taxonomy_by_term_id( $term_id) {

    // We can't get a term if we don't have a term ID.
    if (0 === $term_id || null === $term_id) {
        return;
    }

    // Grab the term using the ID then read the name from the associated taxonomy.
    $taxonomy = '';
    $term = get_term( $term_id );
    if (false !== $term) {
        $taxonomy = $term->taxonomy;
    }

    return trim( $taxonomy );
}

Код должен быть простым для понимания (если бы не комментарии над функцией), но он вернет либо пустую строку, либо название таксономии на основе идентификатора термина.

Поскольку get_term извлекает объект WP_Term, мы можем просмотреть свойство таксономии термина, чтобы получить имя. Затем я обрезаю строку на всякий случай (если я работаю с чужим кодом, я никогда не знаю, дополнен он или нет, и мне не нужны посторонние символы).

Несмотря на это, теперь у вас есть функция, позволяющая получить название таксономии по идентификатору термина. Если возвращается пустая строка, то имя таксономии не найдено.

Источник записи: tommcfarlin.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее