如果自定义字段设置为“是”,则显示标签

Show the tag if the custom field is set to “Yes”

使用下面的代码,我使用简码 [tagsListfoot]:

在正确的位置输出 10 个标签
function getTagListfoot($classes = '') {
    global $post;
    wp_tag_cloud( array( 'taxonomy' => 'tags_type', 'order' => 'RAND', 'number' => '10' ));
    $tagOutput = [];

    if (!empty($tags)) {
        array_push($tagOutput, '<ul class="tag-list '.$classes.'">');
        foreach($tags as $tag) {
            array_push($tagOutput, '<li>'.$tag->name.'</li>');
        }
        array_push($tagOutput, '</ul>');
    }

    return implode('', $tagOutput);
}

add_shortcode('tagsListfoot', 'getTagListfoot');

每个标签都有一个额外的自定义字段“在地下室输出?”带有“是”和“否”的下拉列表。在使用 get_term_meta 显示标签之前,我尝试检查是否符合“是”,例如:

if ( 'yes' == get_term_meta('pokazat-v-podvale') ):
 array_push($tagOutput, '<li>'.$tag->name.'</li>');
endif;

但是我得不到想要的结果。所有标签仍会显示,包括具有“no”值的标签。可以在这里做吗?

如有任何帮助,我将不胜感激!

.....

add_shortcode( 'tagsListfoot', 'getTagListfoot' );
    function getTagListfoot() {

    wp_tag_cloud( array( 
        'taxonomy'  => 'tags_type',
        'order'     => 'RAND',
        'number'    => '10',
    ) );
}

一开始看起来臃肿的代码并没有什么区别,如果简化为简单也可以wp_tag_cloud

刚刚解决了同一个查询!

试试这个:

add_shortcode( 'tagsListfoot', 'getTagListfoot' );
    function getTagListfoot() {
    global $post;
    
    $args = array( 
        'taxonomy'  => 'tags_type',
        'order'     => 'RAND',
        'number'    => '10',
        'meta_query' => array(
        array(
            'key'     => 'pokazat-v-podvale',
            'value'   => 'yes',
            'compare' => 'IN',
        ),
    ),
    );
    wp_tag_cloud( $args );
}