AもしくはBの条件に当てはまる場合に表示させると言う分岐?のやり方がわかったのでご紹介いたします。
はじめに
ワードプレスで新しく副業用のサイトを立ち上げたのですが、AかBの条件の時に表示させると言うような見せ方をしたくなったので、調べたところ結構簡単だったのでご紹介いたします。
注意事項
PHPなので、一度テストを行ってから本アップするようにしましょう。
今回やりたい事
今回はこういった事をやってみます
- カスタムフィールドAとカスタムフィールドBのどちらかに記入があった場合表示させる
- どちらにも記入がない場合は違う内容を表示させる
以上です。では早速作ってみましょう。
PHPのコードはこれだよ
Custom Field Suite
私がよく使うCustom Field Suiteの場合はこのように表示します。
<?php if( $cfs->get('カスタムフィールドA') or $cfs->get('カスタムフィールドB')): ?> A、もしくはBに記入があった場合はこの文章が表示されます。 <?php else: ?> 条件に当てはまらないので表示していません。 <?php endif; ?>
Custom Field Suiteの使い方は簡単にカスタムフィールドが使えるCustom Field Suiteを見て貰った方がわかりやすいです。
Advanced Custom Fields
Advanced Custom Fieldsと言うワードプレスのプラグインを利用している方の場合は少し違ってくるので要注意です。
<?php if( get_field('カスタムフィールドA') or get_field('カスタムフィールドB')): ?> A、もしくはBに記入があった場合はこの文章が表示されます。 <?php else: ?> 条件に当てはまらないので表示していません。 <?php endif; ?>
Advanced Custom Fieldsの使い方はカスタムフィールドを簡単に導入出来るAdvanced Custom Fieldsが参考になります。
こんな場合で使うと非常に便利
プロフィールを入力する枠をカスタムフィールドで作成した場合で以下の条件に当てはまるケースを考えてみましょう。
- 項目は全て自由入力
- htmlタグはtableを利用する
です。もし、記載がなくても表示させるのであれば無駄に未入力部分が多くなってしまうのでユーザーにとってはあまり良い事ではありません。
<?php if( get_field('カスタムフィールドA') or get_field('カスタムフィールドB')): ?> <table> <?php endif; ?> <?php if( get_field('カスタムフィールドA')): ?> <tr> <th>タイトルA</th> <td><?php echo $cfs->get('カスタムフィールドA'); ?></td> </tr> <?php endif; ?> <?php if( get_field('カスタムフィールドB')): ?> <tr> <th>タイトルB</th> <td><?php echo $cfs->get('カスタムフィールドB'); ?></td> </tr> <?php endif; ?> <?php if( get_field('カスタムフィールドA') or get_field('カスタムフィールドB')): ?> </table> <?php endif; ?>
こんな感じのコードが書けるでしょう。
and条件もあります
今回はAもしくはBに表記があった場合のorって条件ですがAとBに記載があった場合のand条件もあります。詳しくは
をご覧下さい。
以上でカスタムフィールドをor条件で表示させるの説明を終了いたします。
さいごに
PHPは味方にしておきたい
PHPを味方につけるだけで本当に世界が変わります。特に私のようにブログなどを使って稼げる副業をしている人は絶対ですね。
ブロガーの方で一番大変なのがネタがない時ですよね。
ネタがないと言うのは書けないと言う事で自分きっかけで色々と物事をすすめていかなければいけませんがPHPを利用していくと、ユーザー参加型のサイトを立ち上げる事ができるので、そういった苦痛から抜け出すことが出来ます。
情報の登録作業も後残り少なくなってきたので、完成間際です。