検索について
-
「ブログ記事のフィールドの値が○○に等しい」場合の検索
SearchEntriesプラグインでは、検索条件を柔軟に指定することができます。その第一歩として、「ブログ記事のフィールドの値が○○に等しい」という条件で検索する方法を解説します。 SearchConditionsタグと検索条件 SearchEntriesプラグインでは、「SearchConditions」というブロックタグの中に、検索の条件を書いていきま...更新日:2024.02.01 -
「ブログ記事のフィールドの値に○○を含む」場合の検索
「ブログ記事のフィールドの値に○○を含む」という条件で検索する方法を解説します。 「plugins」ディレクトリの当プラグインのconfig.yamlファイル 「plugins」ディレクトリ→「lib」ディレクトリの当プラグインのファイル SearchConditionLikeタグ 「ブログ記事のフィールドの値に○○を含む」という条件は、「SearchC...更新日:2024.02.01 -
「ブログ記事のフィールドの値が○○以上」等の場合の検索
SearchEntriesプラグインの第4回として、「ブログ記事のフィールドの値が○○以上」等の条件で検索する方法を解説します。 1つの値と比較する 「ブログ記事のフィールドの値が○○以上」等の条件で検索するには、「SearchConditionCompare」というタグを使います。1つの値と比較する場合は、書き方は以下のようになります。 <$mt:S...更新日:2024.02.02 -
ブログ記事のフィールドどうしでのOR検索
SearchEntriesプラグインでは、「ブログ記事のタイトル/本文/続きのどれかに『Movable Type』が含まれている」などの、フィールドどうしでのOR検索を行うこともできます。 MTSearchConditionUnionタグ これまでに取り上げてきた検索条件のタグ(MTSearchConditionValues等)を単に複数回書くと、AND検索...更新日:2024.02.02 -
カテゴリのOR検索
SearchEntriesプラグインでは、ブログ記事をカテゴリで検索することもできます。「○○カテゴリか□□カテゴリに属する」というような、カテゴリのOR検索を解説します。 MTSearchConditionCategorySectionタグ カテゴリでの検索を行うには、MTSearchConditionタグのブロックの中に、「MTSearchConditi...更新日:2024.02.02 -
カテゴリのAND検索
SearchEntriesプラグインでは、ブログ記事をカテゴリで検索する際に、「○○カテゴリと□□カテゴリに属する」というようなカテゴリのAND検索を行うこともできます。 カテゴリのAND検索を行う方法 カテゴリのAND検索を行うには、MTSearchConditionCategorySectionタグのブロックの中に、MTSearchConditionCa...更新日:2024.02.02 -
タグの検索
SearchEntriesプラグインでは、ブログ記事をタグで検索することもできます。 MTSearchConditionTagSectionタグ/MTSearchConditionTagタグ ブログ記事をタグで検索するには、MTSearchConditionタグのブロックの中に、「MTSearchConditionTagSection」というタグのブロックを...更新日:2024.02.02 -
カスタムフィールドでの検索の基本
SearchEntriesプラグインでは、カスタムフィールドでの検索を行うこともできます。 MTSearchConditionCFSectionタグ カスタムフィールドで検索するには、フィールドごとに「MTSearchConditionCFSection」というタグのブロックを作り、そのブロックの中に条件を指定するタグを書きます。 <mt:Search...更新日:2024.02.02 -
カスタムフィールドでの検索の応用
SearchEntriesプラグインでは、複数のカスタムフィールドを組み合わせた検索や、ブログ記事標準のフィールド/カテゴリ/タグを組み合わせた検索も可能です。 複数のカスタムフィールドを組み合わせた検索 複数のカスタムフィールドを組み合わせて検索するには、カスタムフィールドの数だけ、MTSearchConditionCFSectionタグを繰り返し書きます...更新日:2024.02.02 -
各種の検索条件の指定
SearchEntriesプラグインでは、前回までに紹介した以外にも、いくつかの検索条件を指定することができます。 「値が○○ではない」などの検索 ブログ記事のフィールドと、カスタムフィールドの検索では、「値が○○ではない」などの条件で検索するテンプレートタグもあります。モディファイアの指定方法は、「値が○○である」等のテンプレートタグと同じです。 検...更新日:2024.02.02 -
ブログ記事の並べ替え
SearchEntriesプラグインでは、検索されたブログ記事を、ブログ記事標準のフィールドの値か、カスタムフィールドの値で並べ替えることができます。 ブログ記事のフィールドで並べ替える 並べ替え方法は、「MTSearchSortOrder」というテンプレートタグで指定します。MTSearchSortOrderタグは、MTSearchConditionsタグ...更新日:2024.02.02 -
検索結果の一部を読み込む
SearchEntriesプラグインでは、デフォルトでは検索で見つかったブログ記事をすべて読み込みます。しかし、一部のブログ記事だけを読み込むようにすることもできます。 読み込む件数を制限する 検索されたブログ記事のうち、一部だけを読み込むように、件数を制限することができます。それには、MTSearchConditionsタグのブロックの中に、「MTSear...更新日:2024.02.02 -
複雑なOR検索
SearchEntriesプラグインをバージョンアップして、複雑なOR検索を行う機能を追加しました。 セクション間のOR検索 最初のバージョンでは、検索条件のセクション(ブログ記事のフィールド/カテゴリ/タグ/カスタムフィールド)の間で、OR検索を行うことができませんでした。例えば、「タイトルに『プラグイン』を含むか、または『CMS』というタグがついている」...更新日:2024.02.02 -
検索結果の件数の出力
SearchEntriesプラグインで検索を行った際に、検索されたブログ記事の件数を出力することもできます。 MTSearchLoadedEntryCountタグ MTSearchConditionsタグによって検索を行った後に、検索で読み込まれたブログ記事の件数を出力するには、「MTSearchLoadedEntryCount」というテンプレートタグを使い...更新日:2024.02.02 -
検索フォーム作成の基本
SearchEntriesプラグインでは、いくつかのプラグインを組み合わせることで、フォームを使った動的な検索を行うこともできます。今回は、検索フォームを作る際の基本を解説します。 必要なプラグイン 検索フォームでの検索を行う場合、まずリアルタイム再構築プラグイン(RealtimeRebuild)が必要です。また、リアルタイム再構築プラグインは、「Rebui...更新日:2024.10.28 -
検索結果表示テンプレート作成の基本
検索フォームの次に、フォームから送信された条件に沿って検索結果を表示するように、テンプレートを作ります。その基本的な手順を解説します。 検索条件が動的に変化する フォームを使って検索する場合も、検索結果を表示するテンプレートにMTSearchConditionsタグのブロックを入れて、検索条件を指定します。ただ、これまでの事例とは異なり、フォームの入力内容に...更新日:2024.02.01 -
検索を動作させるための設定
前回は、検索結果表示用テンプレートの基本的な書き方を解説しました。今回はその続きで、検索フォームから検索結果表示用テンプレートを呼び出せるようにする手順を解説します。 テンプレートモジュールの作成 検索結果表示用のテンプレートは、テンプレートモジュールとして作成します。手順は以下の通りです。 ブログの管理画面で、「デザイン」→「テンプレート」メニューを選び...更新日:2024.02.01 -
記事内のテキストのみを検索する
SearchEntriesプラグインに対して、「記事に含まれるHTMLのタグを除外して、テキストのみを検索したい」というお問い合わせをいただきました。その方法を紹介します。 考え方 記事をリッチテキストで書くと、HTMLのタグもデータベースに保存されます。SearchEntriesプラグインは、データベースに保存されている値を検索するので、リッチテキストで書...更新日:2024.02.02 -
サブカテゴリも含めて検索する
SearchEntriesプラグインでは、カテゴリを指定して記事を検索することができます。その際に、あるカテゴリを指定したら、そのサブカテゴリ(さらにその下の子孫カテゴリすべて)も、検索対象にしたい場合があります。その方法を紹介します。 MTSubCategoriesタグでサブカテゴリのIDを指定する SearchEntriesプラグイン自体には、サブカテゴ...更新日:2024.02.02 -
ウェブページを検索する
ブログ記事とウェブページのデータベース上での違い Movable Typeの内部的には、ブログ記事とウェブページはほぼ同じものとして扱われています。どちらも、データベースの「mt_entry」というテーブルに保存されています。ブログ記事/ウェブページの区別は、mt_entryテーブルの「entry_class」というフィールドで行います。ブログ記事では、この...更新日:2024.02.02 -
MoreCustomFieldsプラグインのCheckbox Groupを検索する(静的編)
Dan Wolfgang氏が作ったMoreCustomFieldsプラグインを使うと、複数のチェックボックスを組み合わせたカスタムフィールド(Checkbox Group)などを追加することができます。このプラグインで追加したカスタムフィールドを、SearchEntriesプラグインで検索したいという要望がありましたので、その方法を紹介します。今日は、Che...更新日:2024.02.02 -
特定のカテゴリ/タグの記事を除外して検索する
特定のカテゴリ/タグの記事を除外して検索する方法を紹介します。 特定カテゴリの記事を除外する 特定のカテゴリの記事を除外するには、以下のような考え方をします。 1.そのカテゴリに属する記事を検索し、記事のIDを読み込みます。 2.記事のIDが、1.の条件を満たさない記事を検索します。 たとえば、「カテゴリA」というカテゴリに属さない記事を検索したい場合、...更新日:2024.02.02
検索フォーム/検索結果表示の事例
-
1つの数値で検索
SearchEntriesプラグインを使うと、さまざまな検索を行うことができます。そのため、検索フォームの作り方も、行いたい検索によってさまざまです。今回は、「フィールドの値が○○以上」など、1つの数値で条件を指定して検索する場合を説明します。 以下のような事例を基に解説します。 商品の価格を表すために、「entry_price」というベースネームのカス...更新日:2024.02.01 -
数値の範囲で検索
検索フォーム/検索結果表示テンプレートの事例の1つとして、「フィールドの値が○○以上□□以下」など、2つの数値で条件を指定して検索する場合を説明します。 以下のような事例を基に解説します。 商品の価格を表すために、「entry_price」というベースネームのカスタムフィールドを作っているものとします。 検索結果表示用のテンプレートモジュールには、「詳細...更新日:2024.02.01 -
数値の範囲をselectで選択
数値で条件を指定する際に、selectで範囲を選べるようにしたいこともよくあります。今回はその方法を解説します。 以下のような事例を基に解説します。 商品の価格を表すために、「entry_price」というベースネームのカスタムフィールドを作っているものとします。 検索結果表示用のテンプレートモジュールには、「詳細検索結果」という名前を付けるものとします...更新日:2024.02.01 -
日付で検索
ブログ記事の公開日時など、検索フォームで日付を指定して検索したい場合もあります。今回は、「○○年□□月の記事」のように、ある1つの日付を入力して検索する方法を解説します。 以下のような事例を基に解説します。 「○○○○年□□月に公開された」という条件でブログ記事を検索します。 検索結果表示用のテンプレートモジュールには、「詳細検索結果」という名前を付ける...更新日:2024.02.01 -
期間で検索
検索フォームで、日付の期間を指定して検索したい場合もあります。今回は、「○○年□□月~●●年■■月の記事」のように、日付を2つ入力して、その期間に該当するブログ記事検索する方法を解説します。 以下のような事例を基に解説します。 「○○○○年□□月~●●●●年■■月に公開された」という条件でブログ記事を検索します。 検索結果表示用のテンプレートモジュールに...更新日:2024.02.01 -
カテゴリのOR検索
検索フォームで、ブログ記事が属するカテゴリを条件に指定したい場合もあります。今回はその場合の検索フォームと検索結果表示テンプレートの作り方を解説します。 以下のような事例を基に解説します。 冒頭の画面のように、検索フォームにカテゴリの一覧を表示し、チェックボックスでカテゴリを選べるようにします。 検索結果表示用のテンプレートモジュールには、「詳細検索結果...更新日:2024.02.01 -
カテゴリのAND検索
昨日はカテゴリのOR検索を行う方法を解説しました。それと同じような手法で、AND検索を行うこともできます。今日はその手順を解説します。以下のような事例を基に解説します。 検索フォームにカテゴリの一覧を表示し、チェックボックスでカテゴリを選べるようにします。 検索結果表示用のテンプレートモジュールには、「詳細検索結果」という名前を付けるものとします。 検索...更新日:2024.02.01 -
タグのOR検索
検索フォームで、ブログ記事につけたタグを条件に指定したい場合もあります。今回は、タグのOR検索を行う場合の検索フォームと、検索結果表示テンプレートの作り方を解説します。 以下のような事例を基に解説します。 冒頭の画面のように、検索フォームにタグを入力する欄を表示します。 検索結果表示用のテンプレートモジュールには、「詳細検索結果」という名前を付けるものと...更新日:2024.02.01 -
タグのAND検索
検索フォームを使って、タグのAND検索を行うこともできます。今回は、タグのAND検索を行う場合の検索フォームと、検索結果表示テンプレートの作り方を解説します。以下のような事例を基に解説します。 検索フォームにタグを入力する欄を表示します。 検索結果表示用のテンプレートモジュールには、「詳細検索結果」という名前を付けるものとします。 検索フォームの作成 検...更新日:2024.02.01 -
ドロップダウン/ラジオボタンのカスタムフィールドの検索
検索フォームを使ってカスタムフィールドの値を検索する際に、ドロップダウンまたはラジオボタンのカスタムフィールドを検索対象にしたいこともあります。その場合、ドロップダウン/ラジオボタンの選択肢を、検索フォームに出力することが必要になります。今日はその方法を解説します。 以下のような事例を基に解説します。 都道府県の情報を、「pref」というベースネームのド...更新日:2024.02.01
検索結果のページ分割
-
静的な検索の場合
SearchEntriesプラグインは、リアルタイム再構築プラグイン(RealtimeRebuild)およびページ分割プラグイン(DivPages)を組み合わせることで、検索結果をページ分割することもできます。検索フォームを使わずに、検索条件を静的に指定する場合のページ分割の方法を解説します。 プラグインのインストール 前述したように、ページ分割を行うには、...更新日:2024.02.02 -
動的な検索の場合
SearchEntriesプラグインを、リアルタイム再構築プラグイン(RealtimeRebuild)およびページ分割プラグイン(DivPages)を組み合わせると、検索フォームでの動的な検索結果もページ分割することもできます。 検索フォームの作り方 検索フォームの作り方は、これまでに解説してきた方法とほぼ同じです。ただし、フォーム(<form・・・&...更新日:2024.04.26 -
PHPによるキャッシュ
SearchEntriesプラグインでは、フォームを使って動的に検索する際にも、検索結果のページをキャッシュすることができます。その方法を解説します。 検索フォーム側 検索フォーム側では、キャッシュを使わない場合と比べて、以下の2点を変更します。 フォームの送信先のアドレス(form要素のaction属性)を、MTRealtimeRebuildPHPPat...更新日:2024.02.01
DataAPI対応
-
準備作業
SearchEntriesプラグインを、Movable Type 6のData APIに対応させました。複数ブログにまたがる検索も可能です。検索条件は従来通りテンプレートタグで書き、検索結果をData APIで得る形を取ります。Data APIで検索する際の準備作業を解説します。 Movable Typeのコアのコードの書き換え 当プラグインでは、Movab...更新日:2024.02.01 -
基本的な使い方
検索条件用のテンプレートモジュールの作成 まず、検索条件を指定するためのテンプレートモジュールを作成します。検索対象のブログ(またはウェブサイト)でテンプレートモジュールを新規作成し、MTSearchConditionsタグのブロックを入れて、検索条件を指定します。検索条件の書き方は、従来のバージョンと同じです。詳しくは、「検索について」の解説を参照してくだ...更新日:2024.02.02 -
JavaScriptでの利用
Data APIではJavaScriptのライブラリが用意されていて、JavaScriptから利用しやすくなっています。SearchEntriesプラグインでも、JavaScriptで検索することができます。 ライブラリの読み込み Data API本体のJavaScriptライブラリを読み込んだ後に、以下のscript要素で追加のライブラリを読み込みます。 ...更新日:2024.02.02 -
動的な検索
SearchEntriesプラグインでは、フォームやURLのパラメータを利用して、動的に検索することもできます。Data APIで検索する場合も、その仕組みを利用することができます。 GetQueryParamプラグインのインストール 動的な検索を行う場合、GETやPOSTで送信されたデータを得るために、GetQueryParamというプラグインをインストー...更新日:2024.10.30
その他の各種事項
-
リスト系アーカイブテンプレートで使う際の注意点
SearchEntriesプラグインのテンプレートタグを、カテゴリアーカイブなどのリスト系アーカイブテンプレートで使う場合、注意する点があります。 問題が起こる場合 リスト系のアーカイブテンプレートでは、テンプレートの再構築に入る前に、そのアーカイブに必要な記事が先に読み込まれるようになっています。一方、SearchEntriesプラグインでは、MTEntr...更新日:2024.02.02 -
MT5.1xで使う場合のコアの書き換え方
SearchEntriesプラグインでは、カスタムフィールドでの並べ替えが可能です。ただ、その際にはMovable Typeのコアの書き換えが必要になります。Movable Type 5.1xでの書き換え方法を紹介します。書き換える箇所は、「lib/MT/ObjectDriver/Driver/DBI.pm」の524行目~548行目の部分です。以下のように書...更新日:2024.02.16 -
MT5.2で使う場合のコアの書き換え方
SearchEntriesプラグインでは、カスタムフィールドでの並べ替えが可能です。ただ、その際にはMovable Typeのコアの書き換えが必要になります。Movable Type 5.2ベータ2でソースコードを調べたところ、5.1とはコアのコードが若干変わっていました。そのため、書き換え方もやや異なります。書き換える箇所は、「lib/MT/ObjectD...更新日:2024.02.16
目次
- プラグインの概要
- 検索について
- 「ブログ記事のフィールドの値が○○に等しい」場合の検索
- 「ブログ記事のフィールドの値に○○を含む」場合の検索
- 「ブログ記事のフィールドの値が○○以上」等の場合の検索
- ブログ記事のフィールドどうしでのOR検索
- カテゴリのOR検索
- カテゴリのAND検索
- タグの検索
- カスタムフィールドでの検索の基本
- カスタムフィールドでの検索の応用
- 各種の検索条件の指定
- ブログ記事の並べ替え
- 検索結果の一部を読み込む
- 複雑なOR検索
- 検索結果の件数の出力
- 検索フォーム作成の基本
- 検索結果表示テンプレート作成の基本
- 検索を動作させるための設定
- 記事内のテキストのみを検索する
- サブカテゴリも含めて検索する
- ウェブページを検索する
- MoreCustomFieldsプラグインのCheckbox Groupを検索する(静的編)
- 特定のカテゴリ/タグの記事を除外して検索する
- 検索フォーム/検索結果表示の事例
- 検索結果のページ分割
- DataAPI対応
- その他の各種事項