获取自定义 post 类型标签而不是名称 - WordPress + Timber
Get custom post type label instead of name - WordPress + Timber
我在 WordPress 中创建了 3 个自定义 post 类型:dissertation
、subject-imposed
、subject-free
在每个自定义 post 类型中,用户只能创建一个 post。
我创建了一个由这三种自定义 post 类型组成的菜单,允许同一用户从 post 切换到另一个。
但是我遇到了一个问题。菜单项显示 post 类型的名称而不是标签。
我得到了:论文/主题强加/主题免费
我想要标签(标签是法语):MEMOIRE / SUJET IMPOSE / SUJET LIBRE
我怎样才能得到标签?先感谢您。
在single.php中:
$post_queried = get_queried_object();
$context['post_type_current'] = get_post_type_object(get_post_type($post_queried));
$get_post_current_user = get_posts( array(
'author' => $current_user->ID,
'post_type' => array('dissertation', 'subject-imposed', 'subject-free'),
));
$context['list_posts_current_user'] = $get_post_current_user;
在single.twig中:
<ul class="menu-secondary__list">
{% for item in list_posts_current_user %}
{% set active = (post_type_current.name == item.post_type) ? 'active' : '' %}
<li class="menu-secondary__item"><a href="{{ item.guid }}" class="menu-secondary__link h-item {{ active }}">{{ item.post_type }}</a></li>
{% endfor %}
</ul>
解决这个问题的两个步骤,首先...
转换成Timber\Posts
的数组
$get_post_current_user
是一个 WP_Post
数组,我们需要将它们转换为 Timber\Post
以便与 Timber 的方法进行交互。有很多方法可以做到这一点,但最简单的...
{% for item in Post(list_posts_current_user) %}
访问类型方法:
现在您可以在 Twig 模板中使用 Post::type()
方法并访问标签:
{{ item.type.labels.name }}
{{ item.type }}
属性 将为您提供这里的一切:
https://developer.wordpress.org/reference/functions/get_post_type_object/
我在 WordPress 中创建了 3 个自定义 post 类型:dissertation
、subject-imposed
、subject-free
在每个自定义 post 类型中,用户只能创建一个 post。
我创建了一个由这三种自定义 post 类型组成的菜单,允许同一用户从 post 切换到另一个。
但是我遇到了一个问题。菜单项显示 post 类型的名称而不是标签。
我得到了:论文/主题强加/主题免费
我想要标签(标签是法语):MEMOIRE / SUJET IMPOSE / SUJET LIBRE
我怎样才能得到标签?先感谢您。
在single.php中:
$post_queried = get_queried_object();
$context['post_type_current'] = get_post_type_object(get_post_type($post_queried));
$get_post_current_user = get_posts( array(
'author' => $current_user->ID,
'post_type' => array('dissertation', 'subject-imposed', 'subject-free'),
));
$context['list_posts_current_user'] = $get_post_current_user;
在single.twig中:
<ul class="menu-secondary__list">
{% for item in list_posts_current_user %}
{% set active = (post_type_current.name == item.post_type) ? 'active' : '' %}
<li class="menu-secondary__item"><a href="{{ item.guid }}" class="menu-secondary__link h-item {{ active }}">{{ item.post_type }}</a></li>
{% endfor %}
</ul>
解决这个问题的两个步骤,首先...
转换成Timber\Posts
的数组$get_post_current_user
是一个 WP_Post
数组,我们需要将它们转换为 Timber\Post
以便与 Timber 的方法进行交互。有很多方法可以做到这一点,但最简单的...
{% for item in Post(list_posts_current_user) %}
访问类型方法:
现在您可以在 Twig 模板中使用 Post::type()
方法并访问标签:
{{ item.type.labels.name }}
{{ item.type }}
属性 将为您提供这里的一切:
https://developer.wordpress.org/reference/functions/get_post_type_object/