Sponsored Link
WordPressの条件タグを使用せずに、カテゴリー別に表示する方法。
条件タグを使用すると、分かりにくくなるのと、
カテゴリー毎に表示を変えたい場合、1つ1つ指定しないといけないので、
長くなってしまう。
Sponsored Link
条件タグを使用した場合
WordPressのテンプレートタグを使用する場合、条件タグを使って以下のように記述する。
<?php if(is_category("3")){ ?> <p>カテゴリーID、3の時表示</p> <?php }elseif(is_category("10")){ ?> <p>カテゴリーID、10の時表示</p> <?php }else{} ?>
テンプレートタグ使った場合こんな感じ。
デフォルトのテーマはこういう書き方をしていたような。
(ざっと書いたので間違ってたらすいません…)
PHP構文、switch文を使う方法
テンプレートタグを使わずにPHPで記述する方法です。
正確には、テンプレートタグを使うけれど、よりPHPの書き方に近い方法です。
テンプレートタグに格納してある情報を抜き出し、
変数を作って、格納する。
変数とswitch文を利用して、出力させるというもの。
ここでは、親カテゴリーIDを$catIDという変数を作成して格納。
switch()の()に$catIDを入れて、
caseの後に表示させたいカテゴリーIDを記述し、
echoで内容を出力する。
<?php $cat = get_the_category(); $catObj = $cat[0]; $catId = $catObj->category_parent; ?> <?php switch($catId){ case 3: echo "カテゴリーID、3の時に表示します。"; break; case 10: echo "カテゴリーID、10の時に表示します。"; break; } ?>
ここで、echo””;の中では、すでにの中にあるので、
が使えない。
その場合、文字列演算子「.」ピリオドを使用し文字列をつなげる。
また、を取った形にする。
注意したいのは、テンプレートタグ自体がechoに寄って出力されるものがある。
その場合、PHPの値として返すテンプレートタグを使用する。
×→echo"<img src='".bloginfo('template_url')."/images/画像ファイル名.jpg'/>";
○→echo"<img src='".get_bloginfo('template_url')."/images/画像ファイル名.jpg'/>";
なぜ同じようなテンプレートタグがあるのか疑問で、紛らわしいなと思っていたのですが、こういう事だったのですね。
テンプレートタグには、一般的に普通に出力するものの他に隠れたものがあるのですねぇ。
奥が深いですね。
PHPを織り交ぜたテーマカスタイマイズ、これからも色々してみたいです。