サポート » プラグイン » advanced custom fields での条件表示の件で

  • 解決済 osat99

    (@osat99)


    どうもはじめまして。

    advanced custom fieldsで店舗メニューの登録フォームをダッシュボード内に作成したのですが、
    定食・単品メニュー・ドリンクのようなメニューのカテゴリーをセレクトボックスで作成し、それぞれどのジャンルに属するのか登録出来るようにしました。

    それを出力する時になのですが、ドリンクに属するものを表示、定食に属するものを表示ということは、
    どのようなコードで実装すれば、よろしいのでしょうか?

    なにぶん、advanced custom fieldsを使用するのが初めてなので、うまくいかないので質問させていただきました。
    よろしくお願いいたします。

15件の返信を表示中 - 1 - 15件目 (全19件中)
  • こんにちは

    プラグインのドキュメントget_field() ページの「Check if value exists」セクション)をご覧ください。

    例:

    $value = get_field( 'ドリンク' );
    if ( $value == 'タピオカミルクティー' ) {
    	echo 'タピオカミルクティー';
    }

    複数選択フィールドの場合

    $values = (array) get_field( 'ドリンク' );
    if ( in_array( 'タピオカミルクティー', $values ) ) {
    	echo 'タピオカミルクティー';
    }
    トピック投稿者 osat99

    (@osat99)

    ご回答、ありがとうございます。

    このコードであれば、タピオカミルクティだけしかページ上には表示されないような気がするのですが。

    ドリンクで登録したアイテムのすべてを表示したいもので。

    トピック投稿者 osat99

    (@osat99)

    プラグインのドキュメントも見てみます!!

    $value = get_field( 'ドリンク' );
    if ( $value == 'タピオカミルクティー' ) {
    	// タピオカミルクティーの処理
    } else if ( $value == 'コーラ' ) {
    	// コーラの処理
    } else {
    	// その他の処理
    }

    参照ページ: https://www.php.net/manual/ja/control-structures.elseif.php

    ※ このフォーラムは WordPress のフォーラムです。PHP コードについては他のフォーラムなどの方が回答が得やすいのではないでしょうか。

    • この返信は4年、 8ヶ月前にishitakaが編集しました。
    • この返信は4年、 8ヶ月前にishitakaが編集しました。

    もしかしたら、条件分岐は必要ないということでしょうか?
    表示するだけでしたら、下記のように書くことができます。

    the_field( 'ドリンク' );

    トピック投稿者 osat99

    (@osat99)

    いえ、条件分岐は必要かと。

    セレクトメニュー(desert_category)で、4つ(teiban、gentei、drink、etc)ほど選ばせる形にして商品登録するようにしておりまして、
    それを1つのページにそれぞれ分けて表示させたいのです。

    トピック投稿者 osat99

    (@osat99)

    先ほどの上の方の条件分岐ので、いけそうですね。

    今、外なので、またやってみます!
    いつも、ありがとうございます!!

    トピック投稿者 osat99

    (@osat99)

    ちなみに「コーラの処理」のような箇所に、
    the_field( ‘ドリンク’ ); を書けばよろしいのでしょうか?

    トピック投稿者 osat99

    (@osat99)

    ちょっと見当違いかもしれませんが、

    <?php
    $value = get_field( ‘desert_category’ );
    if ( $value == ‘teiban’ ) {
    the_field( ‘menu_detail’ ); // タピオカミルクティーの処理
    } else if ( $value == ‘gentei’ ) {
    the_field( ‘menu_detail’ );// コーラの処理
    } else {
    // その他の処理
    }
    ?>

    のように記載してみましたが、何も表示されないですね。
    なにが間違ってるのでしょうか??

    <?php
    $value = get_field( 'desert_category' );
    echo $value;
    ?>

    こちらで選択した値は表示されますか?

    トピック投稿者 osat99

    (@osat99)

    はい、上記ソースで、
    htmlブラウザー上は、

    gentei:季節限定メニュー
    teiban:定番メニュー

    と表示されます。

    つまり、どういうことなのでしょうか?

    トピック投稿者 osat99

    (@osat99)

    セレクトメニューで、gentei:季節限定メニューを選択しているメニュータイトルや、価格等を表示、
    teiban:定番メニューを選択して登録しているメニュータイトルや価格を表示というように、それぞれくくって表示させたいのですが、
    そのためには、それぞれで別の括りのカスタムフィールドを作成しないといけないものなのでしょうか??

    トピック投稿者 osat99

    (@osat99)

    現状、
    https://drive.google.com/file/d/1-CuHUn__O8P7A68cgfPDs-1dUdnXN7bY/view?usp=drivesdk
    こういう感じでカスタムフィールド設定してありますが。

    <?php
    $value = get_field( 'desert_category' );
    echo $value;
    if ( $value == 'teiban:定番メニュー' ) {
    	// teiban:定番メニューの処理
    } else {
    	// その他の処理
    }
    ?>

    セレクトメニューで、gentei:季節限定メニューを選択しているメニュータイトルや、価格等を表示、
    teiban:定番メニューを選択して登録しているメニュータイトルや価格を表示というように、それぞれくくって表示させたいのですが、
    そのためには、それぞれで別の括りのカスタムフィールドを作成しないといけないものなのでしょうか??

    すみません、どのようにしたいのか分かりません。もうすこし具体的に教えてもらえませんか?

    トピック投稿者 osat99

    (@osat99)

    わかりにくくて、すみません。
    カスタムフィールドのメニュー登録画面は、
    https://drive.google.com/open?id=1xTMY3OB9xv0WyaH6Y5dQsfGYY2nDY6xI
    こういう感じで作成しておりまして、
    デザートカテゴリーの箇所がセレクトボックスになっております。

    こうやって登録されたものを固定ページに出力させるために、テンプレートファイルを新規に作成して、
    そこへ教えていただきましたコードを書いて、表示させようかと考えております。

    表示の感じは、デザートカテゴリー毎にまとめて、1ページ内に表示させたいと考えておりまして、
    簡単ではありますが、
    https://drive.google.com/open?id=1eeHiaP7zbIVw2C8olJQmiyEyLQcD4l29
    こういう感じになります。

    advanced custom fields の概念自体といいますか、カスタムフィールド自体の概念が、あまり理解出来ておりませんので、的外れな質問になってるかもしれませんが、どうぞよろしくお願いいたします。

15件の返信を表示中 - 1 - 15件目 (全19件中)
  • トピック「advanced custom fields での条件表示の件で」には新たに返信することはできません。