Vérifier si la page actuelle est un terme de taxonomie

8

Comment puis-je vérifier si la page actuelle est une page de termes de taxonomie, de la même manière que pour le code suivant utilisé pour vérifier si la page actuelle est la page d'accueil?

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

Réponses:

13

Juste pour proposer une solution qui ne fait pas usage de arg()(ce qu'il est conseillé d'éviter si possible selon la page des documents )

Vous pouvez utiliser la menu_get_object()fonction:

$term = menu_get_object('taxonomy_term', 2);
if ($term) {
  // User is on a taxonomy term page
}
Clive
la source
1
Je suppose que le code ci-dessus est également exécuté dans les pages de taxonomie / terme / id / édition et flux !! Nous pouvons avoir besoin de vérifier le troisième argument?
Anil Sagar
1
@AnilSagar Holy moly, vous avez raison: P Je ne suis vraiment pas sûr de la façon acceptée de le faire alors, en supposant que je n'ai pas rattrapé le fait d' arg()être moins lisible
Clive
Que diriez-vous de sauter un peu && !path_is_admin(current_path())dans la ifdéclaration? Je ne l'ai pas encore vérifié, mais les chemins de modification des termes sont des pages d'administration, non :)
Chapabu
1
@Chapabu Vous devez faire une marque de commerce;)
Clive
2
Attention: l'activation des vues remplace le chargeur de termes de taxonomie, provoquant menu_get_object ('taxonomy_term', 2); de ne plus travailler. Voir: drupal.org/node/1468006 et 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
la source
5

<?php if (arg(0) == 'taxonomy' && arg(1) == 'term' && arg(2)): ?> devrait faire l'affaire.

Dans le cas où l'édition / le flux (et éventuellement d'autres pages liées) devraient être exclus, vous pouvez utiliser: <?php if (arg(0) == 'taxonomy' && arg(1) == 'term' && arg(2) && !arg(3)): ?>

Madis
la source
Cela reviendra également vrai pour taxonomy/term/123/editlequel je ne suis pas sûr que le PO le souhaite.
Clive
1
Oui, il n'a pas dit précisément ce qu'il vise, mais j'ai mis à jour ma réponse pour répondre à cette préoccupation.
Madis