サポート » 使い方全般 » 管理画面で入力する情報の有無を判断して表示させたい

  • 解決済 dowel

    (@dowel)


    お忙しい中失礼します。
    管理画面内で入力した情報の有無によってサイトに表示させるデザインを変えたいと思っています。
    管理画面で情報が入力されない場合は非表示
    入力されている場合は表示
    という具合です。
    以下、行き詰っている場所です。ご教授いただけますと幸いです。

    管理画面の「外観」の中へ「サイト設定」というオプションページを設けました。
    そのページ内で

    <form method="post" action="">
    <input type="hidden" name="update_options" value="true" />
    <label for="hoge1"><?php _e('hoge1の情報'); ?></label>
    <input type="text" name="hoge1" id="hoge1" size="50" value="<?php echo get_option('hoge1'); ?>"/>

    とし、hoge1の情報を取得します。

    次にindex.phpに

    <div class="hoge">
    <?php echo (get_option('hoge1')) ? get_option('hoge1') : '' ?>
    </div>

    とし表示しています。

    ここで、実際にやりたいことは、<div class=”hoge”>…</div>自体をhoge1がある場合のみに表示し、hoge1がない場合には表示しないように条件をつけたいのです。
    どなたかご教授いただけますと幸いです。

    また、このような質問で皆様のお手間を取らせるのは心苦しいので、自ら勉強したいのですが、どのような書籍を買えばこれらの情報が得られるのかがわかっておりません。もしこのような書籍をご存知でしたら教えていただけますでしょうか?

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    if文で、get_option( ‘hoge1’ ) を条件として判別し、div タグ全体を括ることで実現可能です。
    また、わからない場合は、デフォルトテーマなどを記述し、同様の実装をしている箇所がないか確認してみることもためになります。

    <?php if ( get_option( 'hoge1' ) ) : ?>
    <div class="hoge">
    <?php echo get_option( 'hoge1' ); ?>
    </div>
    <?php endif; ?>

    少し分かりにくい書き方になりますが、if 文内で変数に代入しておき、get_optionの記述を減らす(get_optionの記述ミスを低減する)ことも可能です。

    <?php if ( $hoge1 = get_option( 'hoge1' ) ) : ?>
    <div class="hoge">
    <?php echo $hoge1; ?>
    </div>
    <?php endif; ?>
    トピック投稿者 dowel

    (@dowel)

    できました!
    ありがとうございます。

    変数という方法もあることを知りませんでした。
    とても勉強になります。
    重ね重ねありがとうございました!

    これで解決済みとさせていただきます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「管理画面で入力する情報の有無を判断して表示させたい」には新たに返信することはできません。