J'ai configuré un champ de sélection intitulé "type_actif" avec deux valeurs: "image" et "vidéo". J'ai ensuite deux champs qui dépendent de la logique conditionnelle à afficher. Si "image" est sélectionné dans la sélection, le champ "image_asset" est affiché et si "vidéo" est sélectionné dans la sélection, le champ "vidéo_asset" est sélectionné. En lisant la documentation et quelques autres questions sur la pile, je pensais avoir correctement configuré la logique, mais pour la vie de moi, je ne peux pas obtenir le contenu à afficher. Voici à quoi ressemble mon code:
<?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 } ?>
Toute aide ou conseil est grandement apprécié, merci!
Juste pour clore la question:
<?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 } ?>
Si vous souhaitez utiliser la variable value
de votre champ de sélection au lieu de l'étiquette dans votre déclaration, vous pouvez le faire dans ACF:
image : Image
video : Video
Et ceci dans votre modèle (en utilisant la valeur et non l'étiquette lisible par l'homme):
<?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 } ?>
Ici get_sub_field('asset_type')
a été remplacé par get_sub_field('asset_type', '')
C'est une option beaucoup plus propre face aux étiquettes longues, par exemple.
video : First Event Video 1920x1080
Cela vous permet également de changer rapidement l'étiquette pour l'utilisateur sans avoir à retravailler votre code.