web-dev-qa-db-ja.com

<span>でカンマで区切られたメタ値をラップする方法

このコードを使用して、私のカスタムメタフィールドの単一の値をカンマで区切って表示することができました。

$ct = get_post_meta($post->ID, 'ct', true);
echo $ct;

そして、これが出力です。

アメリカ、イギリス、中国、香港

私は出力がである必要がありました:

<span>USA</span>, <span>UK</span>, <span>China</span>, <span>Hong Kong</span>

出来ますか?もしそうなら、サンプルコードは本当にあなたが知っているかもしれないたくさんまたはどんな参考文献にでも役立つでしょう。

1
Archangel17

メタ値をコンマで区切られた単一の文字列として格納する場合は、ネイティブのPHP explode()を使用してそれらを配列に格納できます。

$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 ) ) ? ', ':'' );
}

このような値がある場合、これは問題を引き起こすかもしれません:

香港、中国

単一の文字列ではなく、配列としてそれらを保存してください。

さらに良いのは、countryという名前のカスタム分類法を使用し、それからそれらを出力するために the_terms() を使用することです。この機能では、テキストの前後および前後にセパレータを追加できます。

the_terms( $post->ID, 'country', '<span>', ',', '</span> );
1
Jack Johansson