Movable Type Data APIの使い方:カスタムフィールド検索

Movable Type Data APIの使い方:カスタムフィールド検索

Posted at May 22,2015 1:55 AM
Tag:[DataAPI, MovableType]

Movable Type 6から提供されているData APIの使い方を紹介します。

本エントリーでは、JavaScript SDK APIのsearch()を使ったカスタムフィールドでの検索方法について解説します。

基本的な検索方法については「Movable Type Data APIの使い方:検索」をご覧ください。

注:本機能はMT6.1.1以降で有効です。

1.カスタムフィールド検索のサンプル

search()を使ってカスタムフィールド検索を行うための簡単なサンプルを紹介します。

<script>
// API生成コード等は省略
 
$('#search').click(function(){
    var data = {
        'search': 'field:' + $('#basename').val() + ':' + $('#searchTerms').val(),
        'IncludeBlogs': $('#IncludeBlogs').val(),
        'ExcludeBlogs': $('#ExcludeBlogs').val(),
        'SearchSortBy': $('#SearchSortBy').val(),
        'SearchResultDisplay': $('#SearchResultDisplay').val()
    };
    api.search(data, function(response) {
        if (response.error) {
            $('#result').html('エラー:' + response.error.message);
        } else {
            $('#result').html(response.totalResults + '件ヒットしました');
            for (i=0; i< response.items.length; i++) {
                $('#result').append('<li>' + response.items[i].title + '</li>');
            }
        }
    });
});
</script>
 
<ul>
<li><input type="text" id="basename" />ベースネーム</li>
<li><input type="text" id="searchTerms" />検索文字</li>
<li><input type="text" id="IncludeBlogs" />検索対象ブログID</li>
<li><input type="text" id="ExcludeBlogs" />検索対象外ブログID</li>
<li>
  <select id="SearchSortBy">
    <option value="" selected="selected">並べ替え</option>
    <option value="created_on">作成日時</option>
    <option value="title">タイトル</option>
  </select>
</li>
<li>
  <select id="SearchResultDisplay">
    <option value="" selected="selected">並べ替え順</option>
    <option value="ascend">昇順</option>
    <option value="descend">降順</option>
  </select>
</li>
<li><input type="button" id="search" value="検索" />
</ul>
<ul id="result"></ul>

JavaScriptライブラリのインクルードやapiの生成については「Movable Type Data APIの使い方(JavaScript SDKを使ったオブジェクトの生成)」を参照してください。

また、エラーのハンドリングについては「Movable Type Data APIの使い方(エラーのハンドリング)」を参照してください。

なお、上記のサンプルでは結果表示処理でjQueryを利用しているので、jQueryのインクルードも行ってください。

2.カスタムフィールド検索のパラメータ

search()に設定するカスタムフィールド検索部分のパラメータは次のとおりです(他は省略)。

  • search:field:ベースネーム:検索文字列(必須)

たとえばベースネームが「cftext」、検索文字が「foo」の場合は、

search:"field:cftext:foo"

と設定します。

3.カスタムフィールドでAND検索

次のように指定すれば、カスタムフィールドでAND検索ができるようです(動作確認済み)。

search:"field:cftext1:foo AND field:cftext2:bar"

AND検索を実行する場合、上記のサンプルコードは適宜修正してください。

確認ミスかもしれませんがOR検索は動作しませんでした。

search:"field:cftext1:foo OR field:cftext2:bar"

2021.03.09 検索API名が誤っていたので修正しました。

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)