我正在博客中构建搜索结果页面。我已经重写了URL,所以转到:
/blog/tag/foo
将返回foo的搜索结果。
在模板中,我想返回所有标有'foo'的帖子的列表,所以我创建了一个MT:Entries块开始:
<mt:Entries tag="<$mt:SearchString$>">
但它没有返回任何结果。但是,放在页面输出'foo'就好了。
所以我尝试了这个:
<mt:Entries tag="foo">
并返回正确标记为foo的所有结果。我没有看到为什么另一个应该工作的理由 - 任何想法?
答案 0 :(得分:1)
您不能将标记用作参数值。你必须通过变量传递它,如下所示:
<mt:setvarblock name="q"><$mt:SearchString$></mt:setvarblock>
<mt:Entries tag="$q">
答案 1 :(得分:1)
<mt:Entries tag="foo">
工作的原因是因为你告诉Movable Type明确地抓住标记为“foo”的条目。这是您应该在大多数模板中执行此操作的方式,但搜索结果系统模板是不同的。
虽然Francois提供的示例应该有效,但在搜索结果系统模板中获取“标记搜索”结果不是预期的方法。
在搜索结果模板中,使用<mt:Entries>
块标记而不是<mt:SearchResults>
块标记。
你的代码应该是这样的:
<mt:SearchResults>
<mt:IfTagSearch>
<!-- Template tags for "tag search" results -->
</mt:IfTagSearch>
<mt:IfStraightSearch>
<!-- Template tags for "text search" results -->
</mt:IfStraightSearch>
</mt:SearchResults>
有关更详细的示例,请查看“经典博客”模板集(随Movable Type附带)中默认搜索结果模板中的代码,并修改工作(和测试)代码。