Jak uzyskać nazwę terminu taksonomii bieżącego terminu taksonomii page.tpl.php?

11

Im na d7. Usiłuję uzyskać nazwę terminu taksonomii strony taksonomii, na której jestem. Ponieważ nie ma mnie na stronie „node”, nie mogę go pobrać za pomocą $ node-> tid. Co powinienem zrobić? Dzięki.

oobie11
źródło

Odpowiedzi:

23

Próbować..

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) powinien zwrócić tid strony taksonomii (taksonomia / termin / tid).

Kevin
źródło
Dziękuję za szybką odpowiedź. Wypróbowałem twoją metodę, ale otrzymuję ten błąd Notice: Trying to get property of non-object in include() (line 79 of {my site}/templates/page.tpl.php)i nie działa. :(
oobie11
Co print_r(arg())pokazuje
mpdonadio
Tablica ([0] => taksonomia [1] => termin [2] => 1920)
oobie11
wymyśliłem to, wyjaśnię poniżej
oobie11
6

Zrozumiałem, oto co zrobiłem:

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

Dziękuję @Kevin za pomoc.

oobie11
źródło
+1 dla oszczędności taksonomii-termin-id jest osobną zmienną. Wynika to z zasady KISS (przynajmniej z mojego punktu widzenia).
Bhavik Shah
Działa idealnie, zajęło mi trochę czasu, aby znaleźć poprawną odpowiedź, więc dziękuję.
JDavies
-4

Zamiast używać taxonomy_term_load (), który nie działa dobrze za każdym razem, możesz wywołać:

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
źródło