Compruebe si la página actual es un término de taxonomía


8

¿Cómo puedo verificar si la página actual es una página de término de taxonomía, de manera similar a lo que se hace con el siguiente código utilizado para verificar si la página actual es la página principal?

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

Respuestas:


13

Solo para ofrecer una solución que no utilice arg()(que se recomienda evitar siempre que sea posible según la página de documentos )

Puedes usar la menu_get_object()función:

$term = menu_get_object('taxonomy_term', 2);
if ($term) {
  // User is on a taxonomy term page
}

1
Supongo que el código anterior también se ejecuta en taxonomía / término / id / edición y páginas de alimentación también. ¿Es posible que necesitemos verificar el tercer argumento?
— Anil Sagar

1
@AnilSagar Holy Moly, tienes razón: P Realmente no estoy seguro de cuál es la forma aceptada de hacer esto, suponiendo que no haya inventado esa parte de arg()ser menos legible
— Clive

¿Qué hay de aparecer un poco && !path_is_admin(current_path())en la ifdeclaración? Todavía no lo he verificado, pero las rutas de edición de términos son páginas de administración, no :)
— Chapabu

1
@Chapabu Deberías marcar eso;)
— Clive

2
Precaución: Habilitar vistas reemplaza el cargador de términos de taxonomía, lo que provoca menu_get_object ('taxonomy_term', 2); para no trabajar más. Ver: drupal.org/node/1468006 y 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)): ?> debería hacer el truco.

En caso de que la edición / feed (y posiblemente algunas otras páginas relacionadas) se excluyan, puede usar: <?php if (arg(0) == 'taxonomy' && arg(1) == 'term' && arg(2) && !arg(3)): ?>


Eso también será cierto para lo taxonomy/term/123/editque no estoy seguro de que el OP quiera.
— Clive

1
Sí, no dijo exactamente a qué apunta, pero actualicé mi respuesta para abordar esa preocupación.
— Madis
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.