web-dev-qa-db-ja.com

高度なカスタムフィールド:選択付き条件付きステートメント

「asset_type」というラベルの付いた選択フィールドに、「image」と「video」という2つの値を設定しました。表示される条件付きロジックに依存する2つのフィールドがあります。選択から "image"が選択された場合は "image_asset"フィールドを表示し、選択から "video"が選択された場合は "video_asset"フィールドを表示します。ドキュメントと他のいくつかのスタックの質問を読んで、私は論理を正しく設定したと思いました、しかし私の人生のために内容を表示させることができません。これが私のコードのようなものです。

<?php if(get_sub_field('asset_type') == "image") { ?>

    <div><?php the_sub_field('image_asset'); ?></div>

<?php } ?>

<?php if(get_sub_field('asset_type') == "video") { ?>

    <div><?php the_sub_field('video_asset'); ?></div>

<?php } ?>

任意の助けやアドバイスは大歓迎です、ありがとう!

1
Darren

質問を閉じるためだけに:

<?php if(get_sub_field('asset_type') == "Image") { ?>
  <div><?php the_sub_field('image_asset'); ?></div>
<?php } ?>
<?php if(get_sub_field('asset_type') == "Video") { ?>
  <div><?php the_sub_field('video_asset'); ?></div>
<?php } ?>
1
pcarvalho

ステートメントのラベルの代わりにあなたのselectフィールドのvalueを使いたいのであれば、ACFでこれを行うことができます。

image : Image
video : Video

そしてこれはあなたのテンプレートの中で(人間が読めるラベルではなく値を使って):

<?php if(get_sub_field('asset_type', '') == "image") { ?>
  <div><?php the_sub_field('image_asset'); ?></div>
<?php } ?>
<?php if(get_sub_field('asset_type', '') == "video") { ?>
  <div><?php the_sub_field('video_asset'); ?></div>
<?php } ?>

ここでget_sub_field('asset_type')get_sub_field('asset_type', '')に変更されました

これは長いラベルに遭遇したとき非常にきれいなオプションです。

video : First Event Video 1920x1080

コードを書き直すことなく、ユーザーのラベルをすばやく変更することもできます。

0
Jake