Periksa apakah halaman saat ini adalah istilah taksonomi


8

Bagaimana saya bisa memeriksa apakah halaman saat ini adalah halaman istilah taksonomi, sama dengan apa yang dilakukan dengan kode berikut yang digunakan untuk memeriksa apakah halaman saat ini adalah halaman depan?

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

Jawaban:


13

Hanya untuk menawarkan solusi yang tidak memanfaatkan arg()(yang disarankan untuk dihindari jika memungkinkan menurut halaman dokumen )

Anda dapat menggunakan menu_get_object()fungsi ini:

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

1
Saya kira kode di atas juga dijalankan di halaman taksonomi / istilah / id / edit & umpan juga !! Kita mungkin perlu memeriksa argumen ketiga?
Anil Sagar

1
@AnilSagar Holy moly Anda benar: P Saya benar-benar tidak yakin apa cara yang diterima untuk melakukan ini, dengan anggapan saya belum mengarang sedikit tentang arg()menjadi kurang mudah dibaca
Clive

Bagaimana kalau muncul sedikit && !path_is_admin(current_path())dalam ifpernyataan itu? Saya belum memeriksanya, tetapi jalur edit istilah adalah halaman admin, tidak :)
Chapabu

1
@ Chapabu Anda harus merek dagang itu;)
Clive

2
Perhatian: Mengaktifkan Tampilan menggantikan istilah taksonomi loader, menyebabkan menu_get_object ('taxonomy_term', 2); untuk tidak bekerja lagi. Lihat: drupal.org/node/1468006 dan 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)): ?> harus melakukan trik.

Dalam hal edit / umpan (dan mungkin beberapa halaman terkait lainnya) harus dikecualikan, Anda dapat menggunakan: <?php if (arg(0) == 'taxonomy' && arg(1) == 'term' && arg(2) && !arg(3)): ?>


Itu juga akan mengembalikan true taxonomy/term/123/edityang saya tidak yakin ingin OP.
Clive

1
Ya dia tidak mengatakan apa yang dia tuju dengan tepat, tetapi saya telah memperbarui jawaban saya untuk mengatasi masalah itu.
Madis
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.