Ü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.
} 

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
}

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
}

?>

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)): ?>


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.