Php 在这种情况下,将循环中的ID传递给WP函数
在Timber/Twig中,我使用以下方式显示事件列表: page-events.php:Php 在这种情况下,将循环中的ID传递给WP函数,php,wordpress,twig,timber,Php,Wordpress,Twig,Timber,在Timber/Twig中,我使用以下方式显示事件列表: page-events.php: $context = Timber::get_context(); $events = array( 'post_type' => 'event', 'posts_per_page' => 10, ); $context['events'] = Timber::get_posts( $events ); Timber::render( array( 'page-' . $
$context = Timber::get_context();
$events = array(
'post_type' => 'event',
'posts_per_page' => 10,
);
$context['events'] = Timber::get_posts( $events );
Timber::render( array( 'page-' . $post->post_name . '.twig', 'page-home.twig' ), $context );
page-events.twig
{% for event in events %}
<li>{{ event.name }} - *country* </li>
{% endfor %}
如何使用木材将ID传递给获取术语($ID,'country')
我已经搜索了木材文档并在谷歌上搜索了一下,但找不到答案
我尝试了
{{get_the_term(event.id,'country')}}
和{%get_the_term(event.id,'country')%}
以及类似的方法,但没有成功。如果您想在Twig中使用PHP函数,您需要使用function()
或fn()
,如中所述
对您来说,这意味着在Twig中,您可以使用
{{ fn( 'get_the_terms', event.id, 'country' ) }}
您通过event.ID
传递ID的方法是正确的。但是,该函数返回一个数组,不能这样显示。您需要将其转换为字符串或循环。以下是如何使用Twig过滤器仅显示该数组中的第一个国家:
如果您有多个国家,可以将它们转换为逗号分隔的列表,其中包含:
还有一件事我们可以优化。我们可以使用可用于Timber\Post
对象的方法,而不是使用get\u the_terms()
:
{% for event in events %}
<li>{{ event.name }} - {{ event.terms('country')|first }}</li>
{% endfor %}
{%for events%}
{{event.name}}-{event.terms('country')|first}
{%endfor%}
{{ fn( 'get_the_terms', event.id, 'country' )|first }}
{{ fn( 'get_the_terms', event.id, 'country' )|join(', ') }}
{% for event in events %}
<li>{{ event.name }} - {{ event.terms('country')|first }}</li>
{% endfor %}