如果自定义字段有值,我希望它显示该值。如果自定义字段没有值,我希望它显示“不适用”。我将此功能用于自定义字段,但无法复制自定义分类法的相同功能。
这适用于自定义字段:
$url = get_post_meta( get_the_ID(), \'event-code\', true );
if ( ! empty( $url ) ) {
print ( $url );
}
else {
print \'N/A\';
}
对于具有值的自定义分类条目,这将显示值和“不适用”:
$promtax = the_terms( get_the_ID(), \'promotion\',\'\' );
if ( ! empty( $promtax ) ) {
print ( $promtax );
}
else {
print \'N/A\';
}
我使用了isset的变体和组合,没有任何运气。谢谢
SO网友:chrisguitarguy
使用get_the_terms
. 它将返回空数组、WP\\u错误对象或术语。所以你可以检查它们是否存在。
<?php
$terms = get_the_terms( $post->ID, \'promotion\' );
if( $terms && ! is_wp_error( $terms ) )
{
foreach( $terms as $term )
{
// each $term is an object. you could do something like this....
$link = get_term_link( $term );
echo \'<a href="\' . esc_url( $link ) . \'">\' . esc_attr( $term->name ) . \'</a>, \';
}
}
else
{
// no terms found
echo \'N/A\';
}
get_the_term_list
将以同样的方式工作,但您对输出的控制将更少。
<?php
$terms = get_the_term_list( $post->ID, \'promotion\', \'Promotions: \', \' \', \'\' );
if( $terms && ! is_wp_error( $terms ) )
{
// terms found!
echo $terms;
}
else
{
// no terms found
echo \'n/a\';
}