检查当前页面是否为分类术语


8

如何检查当前页面是否为分类学术语页面,类似于以下用于检查当前页面是否为首页的代码?

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

Answers:


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神圣的妈妈,你是对的:P我真的不确定那是什么被接受的方式,前提是我还没有弥补arg()不那么可读的不足
克莱夫(Clive)

&& !path_is_admin(current_path())if语句中弹出一点怎么样?我还没有检查过,但术语编辑路径是管理页面,否:)
Chapabu 2012年

1
@Chapabu您应该为该商标;)
Clive

2
警告:启用视图将替换分类术语加载器,从而导致menu_get_object('taxonomy_term',2); 不再工作了。请参阅:drupal.org/node/1468006api.drupal.org/comment/45018#comment-45018
Manu


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不确定的OP ,这也将返回true 。
克莱夫(Clive)

1
是的,他没有明确说明他的目标是什么,但是我已经更新了我的答案以解决该问题。
Madis 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.