显示具有相同自定义字段值的术语列表

时间:2016-05-04 作者:Акрам Фаузи

我的分类法有一个自定义字段,名为\'food_type\'.

如果此自定义字段的值设置为“猫粮”,如何显示术语列表?

1 个回复
SO网友:Steven

要做到这一点,您需要一个自定义查询—Wordpress没有现成的函数来从termmeta 桌子

自定义查询使用get_col() 它允许您获取term_ids 其中meta_key 以及meta_value 匹配问题中的值。请注意,查询使用prepare() 这是安全方面的良好实践。

有关的详细信息$wpdb 可在上找到its Codex page.

如果你得到了一些结果,你就可以使用Wordpress的get_termget_term_link 函数,输出要查找的链接列表。

global $wpdb;

// custom query to get all the term_ids from the termmeta table
$query_str  = \'SELECT term_id FROM \' . $wpdb -> prefix . \'termmeta WHERE meta_key = %s AND meta_value = %s\';
$meta_key   = \'food_type\';
$meta_value = \'Cat food\';

$term_ids = $wpdb -> get_col( $wpdb -> prepare( $query_str, $meta_key, $meta_value ) );

// if you got results back, loop through them to create a list of links
if( $term_ids ):

    $taxonomy = \'your_taxonomy\';

    echo \'<ul>\';
    foreach( $term_ids as $id ):

        // get the term object with $id for displaying the name
        $term = get_term( $id, $taxonomy );
        // get the term permalink
        $url  = get_term_link( $term );

        echo \'<li>\';
        echo  \'<a href="\' . $url . \'">\' . $term -> name . \'</a>\';  
        echo \'</li>\';

    endforeach;
    echo \'</ul>\';

endif;

相关推荐

GET_THE_TERMS与wp_GET_POST_TERMS中的奇怪结果

我正在尝试制作一个面包屑函数,但有一个小问题。。。使用时:$categories = get_the_terms( $post->ID, \'product_cat\' ); 我得到了一个循环中使用的类别数组,等等。唯一的问题是它是按字母顺序排列的。(我希望它按层次顺序排列。)经过一番挖掘,我发现了一种替代方法,即使用wp\\u get\\u post\\u terms(),但我肯定遗漏了一些东西,因为当我使用此方法时:$categories = wp_get_post_terms( $p