現在のページが分類用語かどうかを確認する


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 /編集とフィードのページでも実行されると思います!! 3番目の引数をチェックする必要があるかもしれませんか?
Anil Sagar、

1
@AnilSagar Holy molyあなたは正しい:P私はそれを行うための受け入れられた方法が何であるか本当にarg()わかりません、私はあまり読みにくくすることについてそのビットを構成していないと仮定します
クライヴ

どのように少し飛び出る程度&& !path_is_admin(current_path())if声明?まだ確認していませんが、用語編集パスは管理ページです。いいえ:)
Chapabu

1
@Chapabuあなたはそれを商標登録する必要があります;)
Clive

2
注意:ビューを有効にすると、分類用語ローダーが置き換えられ、menu_get_object( 'taxonomy_term'、2);が発生します。もう働かないように。参照:drupal.org/node/1468006およびapi.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を返します。
クライヴ

1
ええ、彼は彼が何を目指しているのか正確には言っていませんでしたが、私はその懸念に対処するために私の答えを更新しました。
Madis
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.