Как получить название термина таксономии для текущего термина таксономии page.tpl.php?

11

Я на d7. Я пытаюсь получить название термина таксономии на странице таксономии, на которой я нахожусь. Так как я не на странице "узла", я не могу получить его по $ node-> tid. Что я должен делать? Спасибо.

oobie11
источник

Ответы:

23

Пытаться..

http://api.drupal.org/api/drupal/modules--taxonomy--taxonomy.module/function/taxonomy_term_load/7

$term = taxonomy_term_load(arg(2));
$title = $term->name;

arg (2) должен возвращать tid страницы таксономии (taxonomy / term / tid).

Kevin
источник
Спасибо за быстрый ответ. Я попробовал ваш метод, но я получаю эту ошибку, Notice: Trying to get property of non-object in include() (line 79 of {my site}/templates/page.tpl.php)и она не работает. :(
oobie11
Что print_r(arg())показывает?
mpdonadio
Array ([0] => таксономия [1] => term [2] => 1920)
oobie11
понял, я объясню ниже
oobie11
6

Я понял это, вот что я сделал:

<?php
$termid = arg(2);
$term = taxonomy_term_load($termid);
$title = $term->name;
?>

Спасибо @Kevin за помощь.

oobie11
источник
+1 для сохранения таксономии-термин-идентификатор является отдельной переменной. Это следует принципу KISS (по крайней мере, с моей точки зрения).
Бхавик Шах
Работает отлично, мне понадобилось немного времени, чтобы найти правильный ответ, так что спасибо.
JDavies
-4

Вместо использования taxonomy_term_load (), который не всегда хорошо работает, вы можете вызвать:

function get_tag_name($tid) {
    $query = db_select('taxonomy_term_data', 't');
    $query
            ->condition('t.tid', $tid, '=')
            ->fields('t', array('tid', 'name'));
    $result = $query->execute();

    foreach ($result as $row) {
        return $row->name;
    }
}
MilanG
источник