2009-11-13 60 views
0

我建立了一个搜索结果页面博客内上正确返回结果。我已经重写了URL,以便:MT:项未搜索页面

/blog/tag/foo 

将返回foo的搜索结果。

在模板中,我想返回标记有“富”的所有帖子的列表,所以我做了一个MT:

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

但它:启动项块没有结果返回。然而,放在页面上输出'foo'就好了。

所以,我想这一点:

<mt:Entries tag="foo"> 

,并返回正确的结果都会被标记以foo。我没有看到其他人应该工作的原因 - 任何想法?

回答

1

不能使用标签作为参数值。你必须通过一个变量来传递,就像这样:

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

当变量代换[1](弗朗索瓦使用此方法)应在大多数模板的工作,它不是通过在搜索结果的系统模板标签搜索结果中循环的预期方法。更多信息在我对这个问题的答案。 [1] http://www.movabletype.org/documentation/designer/variable-interpolation.html – 2010-01-04 09:04:56

1

为什么<mt:Entries tag="foo">工作的原因是因为你告诉Movable Type的明确抢条目标记为“foo”。这是您应该如何在大多数模板中执行此操作的方式,但搜索结果系统模板是不同的。

虽然示例弗朗索瓦报价应该工作,这不是预期的方法来获得在搜索结果的系统模板“标签搜索”的结果。

代替 <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> 

对于更详细的例子,来看看在“经典博客”模板设置在默认的搜索结果模板的代码(附带的可移动键入)并修改工作(和测试)代码。