web-dev-qa-db-fra.com

Comment insérer des méta-valeurs séparées par des virgules dans <span>?

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.

1
Archangel17

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> );
1
Jack Johansson