MT:条目未在搜索页面上正确返回结果

时间:2009-11-13 01:02:46

标签: movabletype

我正在博客中构建搜索结果页面。我已经重写了URL,所以转到:

/blog/tag/foo

将返回foo的搜索结果。

在模板中,我想返回所有标有'foo'的帖子的列表,所以我创建了一个MT:Entries块开始:

<mt:Entries tag="<$mt:SearchString$>">  

但它没有返回任何结果。但是,放在页面输出'foo'就好了。

所以我尝试了这个:

<mt:Entries tag="foo">

并返回正确标记为foo的所有结果。我没有看到为什么另一个应该工作的理由 - 任何想法?

2 个答案:

答案 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附带)中默认搜索结果模板中的代码,并修改工作(和测试)代码。