Wordpress Post对象显示术语名称

Wordpress Post对象显示术语名称,wordpress,advanced-custom-fields,taxonomy-terms,Wordpress,Advanced Custom Fields,Taxonomy Terms,如何显示链接到post对象(ACF)的post的术语名称 通过此代码,我可以看到该帖子的标题: get_the_title( get_field('which_game')->ID ); 要获取帖子的术语名称,可以使用以下函数之一: 它们的工作方式相同,但参数列表略有不同,更重要的是,get\u\u术语对缓存数据起作用(使其更快),而wp\u get\u post\u术语不起作用 $postObj = get_field('which_game'); // DEPENDING ON

如何显示链接到post对象(ACF)的post的术语名称

通过此代码,我可以看到该帖子的标题:

get_the_title( get_field('which_game')->ID );

要获取帖子的术语名称,可以使用以下函数之一:

  • 它们的工作方式相同,但参数列表略有不同,更重要的是,
    get\u\u术语
    对缓存数据起作用(使其更快),而
    wp\u get\u post\u术语
    不起作用

    $postObj = get_field('which_game');
    
    // DEPENDING ON WHICH FUNCTION YOU WANT TO USE:
    $terms = get_the_terms( $postObj->ID, 'provider');
    // OR 
    $terms = wp_get_post_terms( $postObj->ID, 'provider' array( 'fields' => 'name') );
    
    // Both functions return arrays, even if there is just 1 term
    // so loop through the terms returned to add the names to an array
    foreach ($terms as $term) 
        $term_names[] = $term->name;
    
    // turn the array into a comma-separated string (of just the name on its own if there is just 1)
    $term_name_str =  implode("','",$term_names);
    
    如果您确定只有一个学期,您可以检查是否有返回的结果,然后获取第一个结果:

    if (count($terms) > 1) 
        $term_name_str = $terms[0]->name;
    
    但是,第一个示例仅适用于一个学期,并且更加灵活


    注意-此代码未经测试,因此可能会有一些语法错误,但基本概念是正确的。

    您能给我们提供更多有关所需内容的信息吗,例如,它是类别名称、标记名称还是自定义分类法?此外,帖子可以有多个相关术语,所以您想获取所有术语吗?@FluffyKitten这是一个连接到帖子的自定义分类法。好的,分类法名称是什么,如果有多个术语呢?@FluffyKitten hi,它的“提供者”,并且它是alwasy唯一的一个术语。我用更多的代码编辑了这个问题唯一的问题是在自定义分类中显示所有术语。它不工作,什么也不显示,我使用了前$terms。我想问题是如果我使用“$string.=$postObj->ID;”我也看不到任何ID?@Maanstraat什么是
    $string.=$postObj->ID?你的问题中没有这个。您是否也更改了变量名,使它们都是
    $post_object
    $postObj
    ?另外,您是否通过执行
    var\u dump(get\u field('which\u game')->ID)检查了ID;变量转储($postObj->ID)?我真傻,我现在看到它输出的是“主要”帖子的标题,而不是我链接的帖子!我有一个“post Object”字段,用于将post type B中的一篇文章链接到post type A中。所以现在我想将post type B中的一篇文章的信息显示到post type A中。我已经在post type A中选择了一篇文章,所以它们是连接的。@Maanstraat我不太清楚你想在那里做什么,但这看起来与获取术语名称无关?看起来这是一个不同的问题,所以每个问题一次应该是一个特定的问题:)你可以为这个问题添加一个新问题,我建议你也给出一个例子,说明你想做什么来帮助澄清。