我目前有:
<?php
$terms = wp_get_post_terms( $post->ID, \'artist-genre\');
foreach($terms as $term) : ?>
<li>
<?php echo $term->name; ?>
</li>
<?php endforeach;?>
只需在名为artwork
.这很有效,但我觉得foreach
一方面,循环有点过头了。
如果不使用foreach
还是这是最好的方式?
我目前有:
<?php
$terms = wp_get_post_terms( $post->ID, \'artist-genre\');
foreach($terms as $term) : ?>
<li>
<?php echo $term->name; ?>
</li>
<?php endforeach;?>
只需在名为artwork
.这很有效,但我觉得foreach
一方面,循环有点过头了。
如果不使用foreach
还是这是最好的方式?
那么...怎么样using:
echo get_the_term_list( $post->ID, \'artist-genre\', \'<li>\', \',</li><li>\', \'</li>\' );
而是生成HTML列表?或simply:
the_terms( $post->ID, \'artist-genre\', \'<li>\', \',</li><li>\', \'</li>\' );
这是一个包装get_the_term_list()
.还请注意,您缺少is_wp_error()
在代码段中检查,因为wp_get_post_terms()
可以返回WP_Error
对象,用于未知的分类法。但是the_terms
函数处理并返回false
那样的话
如果在代码中紧跟术语名称之后,可以添加
array( \'fields\' => \'names\' )
或用于PHP 5.4+[\'fields\' => \'names\']
作为第三个参数wp_get_post_terms
. 这将只检索附加到帖子的术语的名称。然后,您可以使用echo $terms[0]];
正如@birgire已经提到的,您需要检查$terms
不会返回错误,并且实际返回了值。如果不这样做,将导致出现错误$terms
返回返回空列表的错误我试图使用AJAX在WordPress中显示类别的子类别:当我选择一个主类别时,会调用WP AJAX,结果用于显示子类别。到目前为止,我有一个客户端代码,在不调用WP函数时可以运行(此代码位于主题页中):jQuery(\'#cat-location-main\').change(function () { var optionSelected = jQuery(this).find(\'option:selected\'); var valueSelected = opti