问题描述
//Bad way...
{assign var="article_id" value="`$article.category[0].article_id`"}
{assign var="article_url" value="https://sample.com/detail/`$article_id`.html"}
<a href="{$article_url}" target="_blank">Link to article</a>
$article.category[0].article_id
我可以获得数据“ 01209394909qs_A”。 我要删除“ _A”。
像这样的URL
https://sample.com/detail/01209394909qs.html
解决方法
{assign var="article_id" value="`$article.category[0].article_id`"|substr:0:13}
{assign var="article_url" value="https://sample.com/detail/`$article_id`.html"}
<a href="{$article_url}" target="_blank">Link to article</a>
,
这是使用regex_replace
修饰符的好地方。我们可以将下划线及其后的所有内容从文章ID中删除。我更喜欢使用capture
在模板中组成字符串变量,但是如果需要,可以在分配给article_id
var的过程中使用修饰符。
{capture assign="article_url"}https://sample.com/detail/{$article_id|regex_replace:"/\_(.*)$/"}.html{/capture}