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

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
}

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
}

?>

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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.