Перевірте, чи поточна сторінка є терміном таксономії


8

Як я можу перевірити, чи поточна сторінка - це сторінка терміна таксономії, аналогічно тому, що зроблено із наступним кодом, який використовується для перевірки, чи поточна сторінка є першою сторінкою?

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

Відповіді:


13

Просто запропонувати рішення, яке не використовує arg()(якого рекомендується уникати, де це можливо, на сторінці документів )

Ви можете використовувати menu_get_object()функцію:

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

1
Я думаю, що вищезгаданий код також виконується в таксономії / терміні / id / редагуванні та стрічках! Можливо, нам доведеться перевірити третій аргумент?
Аніл Сагар

1
@AnilSagar Holy moly ти маєш рацію: P Я дійсно не впевнений, що прийнято робити це тоді, якщо припустити, що я не придумав цього, щоб arg()бути менш читабельним
Клайв

Як щодо вискакування трохи && !path_is_admin(current_path())у ifвиписці? Я цього ще не перевіряв, але шляхи редагування терміна - це сторінки адміністратора, ні :)
Chapabu

1
@Chapabu Ви повинні захистити торгову марку, що;)
Clive

2
Увага: Увімкнення перегляду замінює завантажувач терміна таксономії, викликаючи menu_get_object ('таксономія_терм', 2); більше не працювати. Див: drupal.org/node/1468006 і api.drupal.org/comment/45018#comment-45018
Ману


5

<?php if (arg(0) == 'taxonomy' && arg(1) == 'term' && arg(2)): ?> повинен зробити трюк.

У випадку, якщо редагування / подачу (та, можливо, деякі інші пов’язані сторінки) слід виключити, ви можете використовувати: <?php if (arg(0) == 'taxonomy' && arg(1) == 'term' && arg(2) && !arg(3)): ?>


Це також поверне правду, для taxonomy/term/123/editякої я не впевнений, що ОП хоче.
Клайв

1
Так, він не сказав, на що саме прагне, але я оновив свою відповідь, щоб вирішити цю проблему.
Мадіс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.