【发布时间】:2014-04-14 08:04:36
【问题描述】:
我想在 Stacey 中为每个项目设置标签/类别,例如“设计”、“摄影”、“插图”等,并将每个标签/类别链接到各自的类别。
例如,我的 project.yml 文件内容为:
title: Example Person's Logo
date: February 2014
client: Example Person
category: Logo, Digital,
content: +++
Branding for Example Person.
+++
所以,当我在我的 project.html 模板中使用 Stacey (v3) 时,我输入 {{ page.category }} 它输出 Logo, Digital,,这不是我想要的。如果我只想发短信就好了,但我不想。
我想要的是获取逗号分隔值(无论最后一项是否有逗号),并将其变成这样:
<a href="/category/logo/">Logo</a>
<a href="/category/digital/">Digital</a>
我已经进行了一些搜索,并且使用 TWIG 模板引擎,我不确定如何在没有 PHP 中的反向引用的情况下实现这一点。有人告诉我,在 PHP 中,解决方案是这样的:
<?php echo preg_replace(
"#([^,\s]+)#is",
"<a href='/tags/$1'>$1</a>",
$row['tags']);
?>
但是我不知道如何将逗号分隔的列表从“类别:”转换为数组,然后去除逗号数组,并在链接到 href 中的类别时将链接标记放在每个周围。
我也尝试过使用上面的 PHP 作为部分,但是动态代码由于缓存的原因在 Stacey 中不起作用,并且无法从 /partials/ 文件夹外部引用。
我对这一切感到很困惑,任何帮助将不胜感激。
注意:Stacey 没有具有“split”等过滤器的最新版本的 Twig。
【问题讨论】:
标签: php arrays list twig comma