如果Timber的摘录为空白,则使帖子预览为空

时间:2019-05-28 10:24:51

标签: timber

我之前在香草Wordpress中已经解决了这个问题,但是如果摘录字段为空,我似乎找不到找到使post.preview对象保持空白的方法。尽管四处搜寻,似乎没有人发现这个问题!

无论如何,我已经根据以前的方法提出了一种解决方法,即在逻辑文件中设置要使用的树枝模板的变量,该变量很简单,其他人可能会觉得有用。只是想知道我是否在Timber内部缺少某些东西。

这是我使用的解决方案,它位于page.php中。

$excerpt = '';
if ( ! has_excerpt() ) {
    $excerpt = '';
} else { 
    $excerpt = get_the_excerpt();
}
$context['post_excerpt'] = $excerpt;

2 个答案:

答案 0 :(得分:0)

自PHP 7起,它也应能按预期工作,并且是一种更干净的解决方案:

$context['post_excerpt'] = get_the_excerpt() ?? '';

??运算符称为“空合并运算符”。您可以在official PHP docs中找到有关它的更多信息。

另一种解决方案是直接在树枝模板中使用post类中的木材“预览”方法:

{{ post.preview }}

您可以在官方Timber文档中找到有关此信息的更多信息。

答案 1 :(得分:0)

post_excerpt已经是Timber\Post的属性。如果发布是在您的上下文中,则可能不需要为此添加另一个var。

要以一种更加“木材化”的方式拥抱工作,请访问对象的属性,而不是在上下文中设置另一个var。

{# page.twig *}

{% if post.page_excerpt %}
    {{ post.preview }}
{% endif %}

这也较少依赖全局变量(例如has_excerpt()get_excerpt()),因此可以更轻松地在其他模板或文件中重用此代码。