【问题标题】:Show Taxonomy Name from Slug with ACF Custom Post Type使用 ACF 自定义帖子类型显示来自 Slug 的分类名称
【发布时间】:2017-11-20 19:40:15
【问题描述】:

如何从 $area 显示 slug 的自定义帖子类型返回类别名称?使用 $area 的输出如下所示:

north_west 的酒店

我希望输出看起来像:

西北部的酒店

使用以下代码创建类别:

$area_filters[tax_query] = array(
        array(
            'taxonomy'  => 'areas',
            'field'     => 'slug',
            'terms'     => $area
        )
    );

我正在尝试使用 get_term_by 代码。我在“区域”部分尝试了很多东西,包括“类别”、“区域”和其他一些:

    $area_name = get_term_by('name', $area, 'areas');
    global $post;
    $listings_html .= 'Hotels in '.$area_name.';

这给了我调用 $area_name 的错误

可捕获的致命错误:WP_Term 类的对象无法转换为字符串

几乎所有其他东西都只是给我一个没有错误的空白

注意:我花了几个小时研究以找到答案,但没有运气。以下是我查看过的一些链接:

https://developer.wordpress.org/reference/functions/get_term_by/

https://wordpress.stackexchange.com/questions/16394/how-to-get-a-taxonomy-term-name-by-the-slug

https://wordpress.stackexchange.com/questions/95502/get-category-id-from-category-slug-not-working

【问题讨论】:

    标签: php custom-post-type


    【解决方案1】:

    错误即将到来,因为您试图回显一个对象。您需要的值在该对象内。

    从上面的代码我相信你有$area = 'north_west'的值

    如果你有这个那么你就拥有了一切,通过以下代码获取区域对象,

    // Pretending 'areas' to be taxonomy name
    $area_object = get_term_by('slug', $area, 'areas'); 
    

    现在从对象中得到你的名字,

    $area_name = esc_html( $area_object->name );
    

    在要显示的位置使用$area_name。希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-15
      • 1970-01-01
      • 2016-07-16
      • 2016-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多