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

Movabletype MT:搜索页面上的条目未正确返回结果,movabletype,Movabletype,我正在一个博客中建立一个搜索结果页面。我已经重写了URL,以便: /blog/tag/foo 将返回foo的搜索结果 在模板中,我想返回所有标记为“foo”的帖子的列表,因此我创建了一个MT:Entries块,它开始: <mt:Entries tag="<$mt:SearchString$>"> 但它没有返回任何结果。但是,在页面上放置输出“foo”就可以了 所以我试了一下: <mt:Entries tag="foo"> 它将正确返回所有使用

我正在一个博客中建立一个搜索结果页面。我已经重写了URL,以便:

/blog/tag/foo
将返回foo的搜索结果

在模板中,我想返回所有标记为“foo”的帖子的列表,因此我创建了一个MT:Entries块,它开始:

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

但它没有返回任何结果。但是,在页面上放置输出“foo”就可以了

所以我试了一下:

<mt:Entries tag="foo">


它将正确返回所有使用foo标记的结果。我看不出另一个应该工作的原因——有什么想法吗?

不能将标记用作参数值。您必须通过变量传递它,如下所示:

<mt:setvarblock name="q"><$mt:SearchString$></mt:setvarblock>
<mt:Entries tag="$q">

之所以
有效,是因为您告诉Movable Type显式抓取标记为“foo”的条目。这是您在大多数模板中应该做的,但是搜索结果系统模板是不同的

虽然Francois提供的示例应该有效,但它不是在搜索结果系统模板中获取“标记搜索”结果的预期方法

在搜索结果模板中,使用
块标记代替
块标记

您的代码应该如下所示:

<mt:SearchResults>
    <mt:IfTagSearch>
        <!-- Template tags for "tag search" results -->
    </mt:IfTagSearch>
    <mt:IfStraightSearch>
        <!-- Template tags for "text search" results -->
    </mt:IfStraightSearch>
</mt:SearchResults>


有关更详细的示例,请查看“Classic Blog”模板集中默认搜索结果模板中的代码(随附可移动类型),并修改工作(和测试)代码。

而变量插值[1](弗朗索瓦在此使用的方法)应能在大多数模板中工作,它不是在搜索结果系统模板中循环标记搜索结果的预期方法。更多信息请参见我对这个问题的回答。[1]