获取单个帖子类型的自定义术语元问题

时间:2016-04-17 作者:nisr

我试图在单个自定义帖子类型上显示添加到自定义分类法的自定义字段值。我有一篇文章,文章类型是自定义分类法,名为issue。我使用了Tax-Meta-Class 将自定义字段“发布日期”添加到该分类中。对于每一期,我都添加了一个“发布日期”值。为了在每一篇相关的文章上显示子期的出版日期,我尝试使用以下代码:

$object_terms = wp_get_object_terms( $post->ID, \'issue\', array( \'fields\' => \'all\' ) );
if ( $object_terms ) {
    foreach ( $object_terms as $term ) {
        if ( $term->parent ) { 
            $t_id .= $term->term_id;
            $res .= get_tax_meta($t_id,\'publication_date\'); 
        }
    }
    echo $res;  
}
但没有显示任何内容。我也试着使用get_term_meta 而不是get_tax_meta 但什么都没有。如果我添加echo $t_id; 它显示术语ID,这意味着代码可以正确获取术语ID,但无法显示自定义字段值。有什么帮助吗?

2 个回复
最合适的回答,由SO网友:nisr 整理而成

这里是我所做的&;问题终于解决了。要使代码正常工作,只需使用get_term_meta 和添加true 像这样:

    $res .= get_term_meta($t_id,\'publication_date\',true); 
我希望这将有助于任何面临此类问题的人。此外,使用前缀的用户需要将其添加到P-S提到的字段名称之前

SO网友:P-S

可能的解决方案:

检查是否有prefix 为自定义字段设置的(https://en.bainternet.info/tax-meta-class-faq/#comment-1107)

进入Tax-meta-class/Tax-meta-class.php 文件并找到要调用的函数,然后调试问题:

// Tax-meta-class.php

public function get_tax_meta($term_id,$key,$multi = false){
    $t_id = (is_object($term_id))? $term_id->term_id: $term_id;
    var_dump ($t_id); // debug this

    $m = get_option( \'tax_meta_\'.$t_id);
    var_dump ($m); // debug this

    if (isset($m[$key])){
         return $m[$key];
    }else{
        return \'\';
    }
}
检查wp_options 表并搜索option_name 选项的列(参数get_option(\'tax_meta_foo_bar\') 以上)。要么不在那里,要么你缺少的前缀get_option 不返回值。

相关推荐

如何在WordPress开发中添加带有ACF自定义字段ID的自定义metabox字段

我是wordpress开发的新手,我在我的项目中安装了高级自定义字段插件,并创建了两个文本字段名称&;我还创建了一个插件,可以在帖子中创建一个带有文本框的元框。现在在帖子中,我将获得自定义字段名称(&A);电子邮件和我的自定义元框旁边将出现,但我必须将我的元框附加到名称字段旁边,即在名称字段和电子邮件字段之间。我的metabox代码如下。请任何人帮帮我//Creating the custom meta box function my_notice_meta_box() {