Notes vol.2
日々の手帖
↓

MTプラグインCustomFieldsSearchを追加したよ

38

Movabletypeの検索機能って相変わらずカスタムフィールドが検索対象外なんですよね...大型アップデートの度に毎回うんざりするんだけどもう一生対応する気無いのかな。
カスタムフィールド=記事タイトル、記事本文といった基本入力欄の他に、制作者の任意でテキストフィールドなどを追加出来る機能。ウチで言うと記事最下部にあるAmazonのアフィとか、黒いポエムの追記とか。

ということで今更CustomFieldsSearchプラグインを追加しました。簡単な設定(hiddeninputタグをチョロっと追加するだけ)でサクッと対応できるのでおすすめです。

─が、実装してみると微妙だった。
1つの検索フォームで「従来の項目(記事タイトル+本文)」+「任意のカスタムフィールド」を対象にすると、検索結果ページに本来はヒット数ゼロ件の時しか表示されないはずのNoSearchResultsの内容出力されちゃう...。

状況的にはこちらの方とたぶんいっしょ☟

検索がヒットしているにもかかわらず、NoSearchResultsの内容が出力されてしまうというバグらしき挙動が出ました。
https://communities.movabletype.jp/2015/06/customfieldssearch-2.html#comment-9344
  • 従来の検索対象(タイトル&本文)でヒット、かつカスタムフィールドを対象としたヒットはなし
  • 従来の検索対象からのヒットなし、かつカスタムフィールドを対象としたヒットはアリ

というような「一方だけヒット」な状況だとNoSearchResultsの内容が出てる感じ。めんどくさぁ...。
けど利便性をとって、わたしも上記の方と同じく

  1. プラグインのApp.pmから一部ソースをコメントアウト
  2. 検索結果テンプレートに<mt:SetVarBlock>を使って<mt:SearchResultCount>がゼロならゼロ件ヒットのテキストを表示、という分岐を用意
  3. もともとあった<mt:NoSearchResults>の記述はほっとく

という対応をとってしのいでいます。めんどくさぁこれ状況が変わったらまた対応しなきゃならないやつじゃん...。
利便性ってなんだっけ。誰のためだよ。私のためさ!