Kiểm tra xem trang hiện tại có phải là thuật ngữ phân loại không


8

Làm cách nào để kiểm tra xem trang hiện tại có phải là trang thuật ngữ phân loại hay không, tương tự như trang được thực hiện với mã sau đây được sử dụng để kiểm tra xem trang hiện tại có phải là trang đầu không?

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

Câu trả lời:


13

Chỉ để cung cấp một giải pháp không sử dụng arg()(mà nên tránh khi có thể theo trang tài liệu )

Bạn có thể sử dụng menu_get_object()chức năng:

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

1
Tôi đoán mã ở trên cũng được thực thi trong các trang phân loại / thuật ngữ / id / chỉnh sửa và nguồn cấp dữ liệu !! Chúng ta có thể cần kiểm tra đối số thứ ba?
Anil Sagar

1
@AnilSagar Thánh moly bạn nói đúng: P Tôi thực sự không chắc chắn về cách chấp nhận để làm điều này là sau đó, giả sử tôi chưa thực hiện lên rằng chút về arg()là ít có thể đọc được
Clive

Làm thế nào về popping một chút && !path_is_admin(current_path())trong iftuyên bố? Tôi chưa kiểm tra nó, nhưng các đường dẫn chỉnh sửa thuật ngữ là các trang quản trị, không :)
Chapabu

1
@Chapabu Bạn nên đăng ký nhãn hiệu đó;)
Clive

2
Thận trọng: Kích hoạt Chế độ xem thay thế trình tải thuật ngữ phân loại, gây ra menu_get_object ('taxonomy_term', 2); để không làm việc nữa. Xem: drupal.org/node/1468006api.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)): ?> nên làm thủ thuật.

Trong trường hợp chỉnh sửa / nguồn cấp dữ liệu (và có thể một số trang liên quan khác) nên được loại trừ, bạn có thể sử dụng: <?php if (arg(0) == 'taxonomy' && arg(1) == 'term' && arg(2) && !arg(3)): ?>


Điều đó cũng sẽ trở lại đúng với taxonomy/term/123/editđiều mà tôi không chắc OP muốn.
Clive

1
Vâng, anh ấy đã không nói chính xác những gì anh ấy đang nhắm đến, nhưng tôi đã cập nhật câu trả lời của mình để giải quyết mối quan tâm đó.
Madis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.