サポート » プラグイン » Custom Field Templateで条件分岐

  • Custom Field Template 2.3.7をWordPress 4.7で使用しています。
    (ラジオボタンで選んだ内容に応じて表示するコンテンツを切り替えようと思っています)

    「[cft] and [cftsearch] Shortcode Format」におきまして、「PHPを使用する」にチェックし、下記を書きましたが画面にエラーを吐かないものの正常に動作しません。

    <?php $test1 = "[hoge]"; ?>
    <?php if ("$test1" == "aiueo"): ?>
    	aiueoだよ
    <?php else: ?>
    	違うよ
    <?php endif;?>

    テンプレートコンテンツで該当項目をradioにして、編集画面ではaiueoを選択して投稿しています。テーマのほうには、<?php echo do_shortcode(‘[cft format=0]’); ?>と入れています(一つ目のの定義なのでformat=0にしています)。

    ちなみに、<?php echo $test1; ?>と書けば正常にaiueoが表示されます。
    ただし、<?php var_dump($test1);?>と書けば、string(8) “aiueo”と返されます。
    この時点でカッコ内の数字と文字長が合いません。
    どうやらこの「(8)」はキーの名称に影響されるようです。

    試しに<?php echo bin2hex($test1); ?>と書くと、5be58886e5b290355dが返されました。
    これもキーの名称に影響されるようです。
    なお、aiueoを選択せずに、値が空のラジオボタンを用意してそれを選択すると、var_dump()で何もなしになりますが、bin2hex()では何文字かの文字列が返されてしまいます。

    他のプラグインを無効にしてみても同様でした。

    これまでプログラムを書いたことがほとんどないので、見よう見真似ですが、いきなりつまずいてしまいました。
    よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • カスタムフィールドが[hoge]なら、

    <?php $test1 = post_custom('hoge'); ?>
    <?php if ($test1 == "aiueo"): ?>
    	aiueoだよ
    <?php else: ?>
    	違うよ
    <?php endif;?>

    ではないでしょうか。

    あ!ダブルクォーテーションが入っていました!!!
    すみません、凡ミスです。

    ありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「Custom Field Templateで条件分岐」には新たに返信することはできません。