Movable Typeの検索結果をjson形式で取得

  • 投稿日:
  • by
このエントリーをはてなブックマークに追加

Movable Typeの検索結果をjson形式で取得する方法です。

テンプレートを作ればファイルを出力できますが、動的に取得したい場合は検索結果をjson形式にすることで取得できます。

mt-config.cgiに下記を追記します。

SearchAltTemplate feed results_feed.tmpl
SearchAltTemplate json results_json.tmpl

※v4.2以降の記述方法です。(2015/01/13時点)
※Core.pmに下記の記述があったので 'feed results_feed.tmpl' も追記しております。

            'AltTemplate'         => {
                type    => 'ARRAY',
                default => 'feed results_feed.tmpl',
            },

SearchTemplatePathのディレクトリ(デフォルトは"search_templates")のresults_json.tmpl

<MTSearchResults>
<MTSetVarBlock name="push(SearchResultJson)">{
  "title": "<$mt:EntryTitle remove_html="1" encode_php="qq"$>",
  "link": "<$MTGetVar name="SearchMaxResults"$><$MTEntryLink encode_php="qq"$>",
  "date": "<$MTEntryDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$>"
}</MTSetVarBlock>
</MTSearchResults>
[<mt:loop name="SearchResultJson"><mt:Var name="__value__" /><mtif name="__last__"><mtelse>,</mtelse></mtif>
</mt:loop>]

検索のURIにパラメータ「&Template=json」を追加するとjson形式で出力されます。

参考:http://www.movabletype.jp/documentation/appendices/config-directives/searchalttemplate.html