我使用以下代码来获取分类标准:
<?php
$terms = get_the_terms( $post->ID, 'locations' );
if ( !empty( $terms ) ){
$term = array_shift( $terms );
}
?>
然后我使用以下代码输出slug:
<?php echo $term->slug; ?>
我的问题是,如何使用它在同一位置输出两种不同的分类法?例如:
<?php
$terms = get_the_terms( $post->ID, 'locations', 'status' );
if ( !empty( $terms ) ){
$term = array_shift( $terms );
}
?>
我想我可以添加术语“位置”,“状态”,但它不起作用。
答案 0 :(得分:0)
如果你想显示两个或更多分类,那么我认为你应该循环$ terms变量。
<?php
$terms = get_the_terms( $post->ID, 'locations' );
if ( !empty( $terms ) ){
foreach ($terms as $term):
echo $term->slug;
endforeach;
}
?>
希望它可以帮助你。
谢谢
答案 1 :(得分:0)
根据get_the_terms
的官方文档,只能提供一种分类法。如果你想在两种不同的分类法中输出所有术语的段落,你可以按照穆罕默德的建议,但两次。
即
<?php
// output all slugs for the locations taxonomy
$locations_terms = get_the_terms( $post->ID, 'locations' );
if ( ! empty( $locations_terms ) ) {
foreach ( $locations_terms as $term ) {
echo $term->slug;
}
}
// output all slugs for the status taxonomy
$status_terms = get_the_terms( $post->ID, 'status' );
if ( ! empty( $status_terms ) ) {
foreach ( $status_terms as $term ) {
echo $term->slug;
}
}
?>
但是,如果您只想在每个分类法中获得单个术语的段落,您可能会发现get_term_by
更有用。
即
<?php
$loc_field = 'name';
$loc_field_value = 'special location';
$loc_taxonomy = 'locations';
$locations_term = get_term_by( $loc_field, $loc_field_value, $loc_taxonomy );
echo $locations_term->slug;
$stat_field = 'name';
$stat_field_value = 'special status';
$stat_taxonomy = 'status';
$status_term = get_term_by( $stat_field, $stat_field_value, $stat_taxonomy );
echo $status_term->slug;
?>