如何将分类元字段筛选到‘Single_Term_Title’筛选器挂钩

时间:2015-08-19 作者:Mayeenul Islam

要以孟加拉语显示术语,请启用术语元字段,将数据保存到options 桌子我做了一个自定义函数(get_term_meta()) 类似于post\\u meta来获取我的分类元数据,它将term\\u id和term\\u meta\\u键作为参数。如何使用函数,以便使用我定义的术语meta过滤我的默认术语标题。我试过:

function bn_term_title() {
    var_dump($term);
    /*if( get_locale() === \'bn_BD\' )
        return get_term_meta( $term->term_id, \'term_bn\' );*/
}
add_filter( \'single_term_title\', \'bn_term_title\' );
但是var_dump( $term ); 退货null. 如何获取函数中的term\\u id?

P、 S.:get_term_meta() 行为方式如下:get_option( "option_key_name{$term_id}" );

1 个回复
最合适的回答,由SO网友:Mayeenul Islam 整理而成

通过将term\\u name作为参数传递给过滤器的回调函数,解决了此问题。

function bn_term_title( $term_name ) {
    $term_types = get_term_by( \'name\', $term_name, \'tax_1\' );
    if( $term_types->taxonomy === \'tax_1\' ) {
        if( get_locale() === \'bn_BD\' )
            return get_term_meta( $term_types->term_id, \'tax1_bn\' );
        else
            return $term_name;
    }

    $term_categories = get_term_by( \'name\', $term_name, \'tax_2\' );
    if( $term_categories->taxonomy === \'tax_2\' ) {
        if( get_locale() === \'bn_BD\' )
            return get_term_meta( $term_categories->term_id, \'tax2_bn\' );
        else
            return $term_name;
    }
}
add_filter( \'single_term_title\', \'bn_term_title\' );
get_term_by() 将使$taxonomy 参数可选。如果taxonomy参数变为可选,我们可以按以下方式执行:

function bn_term_title( $term_name ) {
    $term_types = get_term_by( \'name\', $term_name );
    if( get_locale() === \'bn_BD\' )
        return get_term_meta( $term_types->term_id, \'term_bn\' );
    else
        return $term_name;
}
add_filter( \'single_term_title\', \'bn_term_title\' );

结束

相关推荐

Get_Terms()返回空数组

我已经阅读了所有关于显示自定义分类法术语的帖子,但它仍然不起作用。好的,下面是代码:<?php //part of template-offer.php $taxonomy = \'brand\'; $term_args=array( \'hide_empty\' => false, \'orderby\' => \'name\', \'order\' => \'ASC\' ); $tax_terms =