まず、カスタム投稿タイプを に渡すつもりがあるかどうかわかりませんthe_terms()
。
とにかく、私はget_the_terms()
あなたが求めている柔軟性をあなたに与えると思います.
例えば:
<?php
$taxList = array("location", "venue");
foreach ($taxList as $tax) {
$terms = get_the_terms( $post->ID, $tax );
if ( $terms && ! is_wp_error( $terms ) ) {
echo "<br/>{$tax}: ";
$separator = "";
foreach ( $terms as $term ) {
echo "{$separator}{$term->name}";
$separator ", ";
}
}
}
?>
注: これは iPad で入力したものなので、テストできないため、構文エラーや論理エラーが含まれている可能性があります。
更新: OP は、上記のコードが各行にすべてのget_the_terms()
分類用語を表示していることをアドバイスします。これは、2 番目のパラメーターで指定された分類によって結果がフィルター処理されていないことを示唆しています。
分類名は大文字と小文字が区別されるため、配列でそれらを指定した方法が正しくない可能性があるのではないかと思いました$taxList
が、docco によると、この場合は何もget_the_terms()
返さfalse
れないはずです出力。
そのため、次のように結果をフィルタリングするのは私たち次第です。
<?php
$taxList = array("location", "venue");
foreach ($taxList as $tax) {
$terms = get_the_terms( $post->ID, $tax );
if ( $terms && ! is_wp_error( $terms ) ) {
echo "<br/>{$tax}: ";
$separator = "";
foreach ( $terms as $term ) {
if (strtolower($term->taxonomy) == strtolower($tax)) {// <-- New (redundant!?) filter.
echo "{$separator}{$term->name}";
$separator ", ";
}
}
}
}
?>
更新:さらなる変更として、最初の行を次のように更新することで、現在の投稿で使用されている分類法を自動的に取得して、タイプミスなどを回避することができます。
$taxList = get_object_taxonomies('uk_events');
さらに、このコードは'uk_events'
、$post->post_type
.