Überprüfen Sie, ob die aktuelle Seite ein Taxonomiebegriff ist

8

Wie kann ich überprüfen, ob die aktuelle Seite eine Taxonomiebegriffsseite ist, ähnlich wie mit dem folgenden Code, mit dem überprüft wird, ob die aktuelle Seite die Startseite ist?

if (drupal_is_front_page()) {
  // The current page is the front page.
}
else {
  // It is not the front page.
} 
Daniel Sachs
quelle

Antworten:

13

Nur um eine Lösung anzubieten, die nicht verwendet wird arg()(die laut Dokumentenseite nach Möglichkeit vermieden werden sollte )

Sie können die menu_get_object()Funktion verwenden:

$term = menu_get_object('taxonomy_term', 2);
if ($term) {
  // User is on a taxonomy term page
}
Clive
quelle
1
Ich denke, der obige Code wird auch in Taxonomie / Begriff / ID / Bearbeiten & Feed-Seiten ausgeführt !! Müssen wir möglicherweise nach dem dritten Argument suchen?
Anil Sagar
1
@ AnilSagar Holy Moly, Sie haben Recht: P Ich bin mir wirklich nicht sicher, wie ich das akzeptieren soll, vorausgesetzt, ich habe mir das nicht ausgedacht arg(), weniger lesbar zu sein
Clive
Wie wäre es ein wenig && !path_is_admin(current_path())in der ifAussage zu knallen ? Ich habe es noch nicht überprüft, aber Term Edit Paths sind Admin-Seiten, nein :)
Chapabu
1
@Chapabu Sie sollten das als Marke kennzeichnen;)
Clive
2
Achtung: Durch Aktivieren von Ansichten wird der Taxonomie-Termlader ersetzt, wodurch menu_get_object ('taxonomy_term', 2) verursacht wird. nicht mehr arbeiten. Siehe: drupal.org/node/1468006 und api.drupal.org/comment/45018#comment-45018
Manu
5
<?php

if (arg(0) ==  "taxonomy" && arg(1) == "term" && is_numeric(arg(2)) && arg(3) == "") {
  // Taxonomy term page
}

?>
Anil Sagar
quelle
5

<?php if (arg(0) == 'taxonomy' && arg(1) == 'term' && arg(2)): ?> sollte den Trick machen.

Falls Bearbeiten / Feed (und möglicherweise einige andere verwandte Seiten) ausgeschlossen werden sollen, können Sie Folgendes verwenden: <?php if (arg(0) == 'taxonomy' && arg(1) == 'term' && arg(2) && !arg(3)): ?>

Madis
quelle
Das wird auch wahr zurückgeben, für taxonomy/term/123/editdie ich nicht sicher bin, ob das OP es will.
Clive
1
Ja, er hat nicht genau gesagt, was er anstrebt, aber ich habe meine Antwort aktualisiert, um dieses Problem anzugehen.
Madis