Codex はご覧になりましたか? is_tag() という条件分岐タグがあります。
<?php if ( is_tag( 'slug' ) : ?>
<!-- 追加内容 -->
<?php endif; ?>
あるいは
<?php if ( is_tag( utf8_uri_encode( 'タグ' ) ) ) : ?>
<!-- 追加内容 -->
<?php endif; ?>
のようにすれば OK です。
英数字 + ハイフンのタグや、タグのスラッグを編集している場合は前者、タグが日本語で、特にスラッグを編集していない場合は後者です。
mizube様
ご回答ありがとうございました。特に後者の方法は勉強になりました。
質問文がわかりにくくて申し訳なかったのですが、私は、タグアーカイブのページではなく、個別記事が表示されている際に、サイドバーの表示を変えたいと思っています。
is_tag()でタグアーカイブページの条件分岐は問題なくできました。
ただ個別記事に移動すると、設定したはずの内容が表示されませんでした。
ループ内ならget_the_tags()を使えば、term_idなどを取得できるような気がするのですが、サイドバーではどうしたらよいのか・・・???
もしよろしかったらアドバイスお願い致します。
TAMA-wpさん、こんにちは。
下記のコードでいかがでしょうか。
Codexでは、get_the_tagsの引数に関する記述がありませんので、推奨されたやり方ではないと思いますが、2.7β2での関数の記述を見る限り、記事idを引数に持たせる想定はしていそうでした。
<?php if ( is_single() ) {
$post_tags = get_the_tags( $post->ID );
foreach( $post_tags as $post_tag ) {
if ( $post_tag->name == 'タグ名' ) {
?>
サイドバーに追加したい内容を記述
<?php } } } ?>
上記のコードでは、タグ名で判別していますが、$post_tag->term_id = ‘タグのid’と変更すれば、term_idなどでの判別も可能だと思います。
> TAMA-wp さん
こちらこそ質問の内容を誤解していました。ごめんなさい。
方法としてはjim912 さんのやり方で出来ます (> フォローありがとうございました!)。
補足ですが、 has_tag() というテンプレートタグもあります (WP2.6.0 以降?)。
この条件分岐タグはWordPress ループ内専用ですが、タグ名とスラッグの両方にアプローチします。
has_tag() の判定結果を利用する場合、もしループ後にサイドバーを読み込んでいるなら、ループ内で
<?php if ( has_tag('タグ') ) $has_tag = true; ?>
としておき、サイドバーの方で
<?php if ( $has_tag ) : ?>
<!-- 追加内容 -->
<?php endif; ?>
とすればよさそうです。
>jim912 様
ご回答ありがとうございます。
ご指示頂いたコードでサイドバーの内容が変更できました。
term_idでも問題なく動きました!
Codexに書かれていなくてもいろいろやり方があるんですね。
とても勉強になりました。
>mizube 様
度々のご回答ありがとうございます。
jim912様のコードで解決致しました。
has_tag()というタグもあるのですね!初めて見ました。
このタグを使っても面白そうだなと思いました。