J'ai pu afficher la valeur unique de mon champ méta personnalisé avec des virgules séparées à l'aide de ce code:
$ct = get_post_meta($post->ID, 'ct', true);
echo $ct;
Et voici une sortie:
États-Unis, Royaume-Uni, Chine, Hong Kong
J'avais besoin que le résultat soit:
<span>USA</span>, <span>UK</span>, <span>China</span>, <span>Hong Kong</span>
C'est possible? Si tel est le cas, un exemple de code aiderait beaucoup, ou toute référence que vous pourriez connaître.
Si vous stockez vos méta-valeurs sous forme de chaîne unique séparée par des virgules, vous pouvez utiliser le PHP explode()
natif pour les stocker dans un tableau:
$ct = get_post_meta($post->ID, 'ct', true);
// Store them in an array
$country_array = explode(',' , $ct);
// Run a loop and echo them
foreach( $country_array as $key => $country ){
echo "<span>{$country}</span>";
echo ( ( $key < ( count( $country_array ) -1 ) ) ? ', ':'' );
}
Cela pourrait poser problème si vous avez une valeur comme celle-ci:
Hong Kong, Chine
Mieux encore, enregistrez-les sous la forme d'un tableau, au lieu d'une seule chaîne.
Encore mieux, utilisez une taxonomie personnalisée nommée country
, puis utilisez the_terms()
pour les générer. Cette fonction vous permet d'ajouter des séparateurs et des textes avant et après:
the_terms( $post->ID, 'country', '<span>', ',', '</span> );