「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
ブログ記事詳細検索プラグイン(その1・概要/インストール/ライセンス)
Movable TypeをCMSとして使う場合、検索機能が弱いことが1つの問題です。
ブログとしての簡易的な検索はできますが、複数の条件で絞り込んで検索するような機能がありません。
この問題を解決するプラグインとして、「SearchEntries」を公開します。
多機能なプラグインなので、数日に分けて順次解説します。
今日は、プラグインの概要と、インストールおよびライセンスについて述べます。
1.概要
SearchEntriesプラグインには、以下のような特徴があります。
- ブログ記事のフィールド(タイトルや日付など)はもちろんのこと、カテゴリ/タグ/カスタムフィールドを組み合わせた柔軟な検索を行うことができます。
- 検索の条件はテンプレートタグで指定します。
- ブログ記事のフィールドや、カスタムフィールドで検索する場合、「値が○○に等しい」「値に○○を含む」「値が○○より大きい」といった条件で検索することができます。
- カテゴリ/タグでの検索では、「○○か□□に属する(OR検索)」/「○○と□□に属する(AND検索)」のどちらも可能です。
- カスタムフィールドの検索では、複数のカスタムフィールドを組み合わせた検索が可能です。
- 拙作の「数値型のカスタムフィールドを追加するプラグイン」を組み合わせると、カスタムフィールドの数値も検索することができます。
- ブログ記事のフィールドの値か、カスタムフィールドの値をキーにして、検索結果を並べ替えることができます。
並べ替えのキーは複数指定することができます。 - 静的な検索に使うことも、フォームと組み合わせた動的な検索を行うこともできます(ただし、動的な検索を行う場合は、拙作のいくつかのプラグインと組み合わせます)。
実際の例として、書籍「Movable Type 5実践テクニック」の中で紹介した「YOKOSUKA FOODS」のサイトがあります。
このサイトでは、各ページの左上に検索のフォームがあり、カテゴリとカスタムフィールド(生産地/価格帯)を組み合わせた検索を行うことができるようになっています。
2.対応バージョン
このプラグインは、Movable Type 5に対応しています。
また、Movable Type 4.2x以降でも動作するはずです(ただし、Movable Type 4.2xでのテストは行っていません)。
3.インストール
このプラグインは以下からダウンロードします。
プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。
また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。
Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。
ダウンロードしたZipファイルを解凍すると、「plugins」というフォルダができます。
このフォルダを、Movable Typeのインストール先ディレクトリにアップロードします。
4.Movable Typeのソースの書き換え
並べ替え機能を動作させるために、Movable Type本体の「lib/MT/ObjectDriver/Driver/DBI.pm」ファイルの480~500行目付近を一部書き換える必要があります。
Movable Type 5.01では、以下のように書き換えます。
書き換え前
my $order = $args->{sort} || 'id'; if (! ref($order)) { my $dir = $args->{direction} && $args->{direction} eq 'descend' ? 'DESC' : 'ASC'; $stmt->order({ column => $dbd->db_column_name($tbl, $order), desc => $dir, }); } else { my @order; foreach my $ord (@$order) { push @order, { column => $dbd->db_column_name($tbl, $ord->{column}), desc => $ord->{desc}, }; } $stmt->order(\@order); }
書き換え後(赤字の部分を追加/変更)
my $order = $args->{sort} || 'id'; if (! ref($order)) { my $tmp_tbl = $args->{sort_class} ? $driver->table_for($args->{sort_class}) : $tbl; my $dir = $args->{direction} && $args->{direction} eq 'descend' ? 'DESC' : 'ASC'; $stmt->order({ column => ($args->{sort_alias} ? $args->{sort_alias} . '.' : '') . $dbd->db_column_name($tmp_tbl, $order), desc => $dir, }); } else { my @order; foreach my $ord (@$order) { my $tmp_tbl = $ord->{sort_class} ? $driver->table_for($ord->{sort_class}) : $tbl; push @order, { column => ($ord->{sort_alias} ? $ord->{sort_alias} . '.' : '') . $dbd->db_column_name($tmp_tbl, $ord->{column}), desc => $ord->{desc}, }; } $stmt->order(\@order); }
5.ライセンス
SearchEntriesプラグインは、以下のライセンスでご提供します。
5-1.商用ライセンスのMTと組み合わせる場合
商用ライセンスのMovable Typeと組み合わせる場合は、有償とさせていただきます。
料金は、導入先のMovable Type1件につき1,000円(消費税込)とします。
お振込み方法等の詳細につきましては、メールフォームからお問い合わせいただきますようお願いします。
なお、アカデミックライセンスと組み合わせる場合は、無償とさせていただきます。
5-2.個人無償ライセンスのMTと組み合わせる場合
個人無償ライセンスと組み合わせる場合は、無償でご利用いただくことができます。
ただし、以下に従ってご利用いただきますようお願いします。
- 改変・再配布は自由に行っていただいてかまいません。
ただし、ソースコード中のクレジットは残しておいてください。 - 無料でご利用いただくことができます。
ただし、プラグインの開発やサポートのご支援のために、ドネーションをご検討いただければ幸いです。 - 当プラグインは無保証で提供します。
5-3.MTOSと組み合わせる場合
- GPLv2に従います。
- 無料でご利用いただくことができます。
ただし、プラグインの開発やサポートのご支援のために、ドネーションをご検討いただければ幸いです。
6.SearchEntriesプラグイン関係の記事の一覧
- ブログ記事詳細検索プラグイン(その1・概要/インストール/ライセンス)
- ブログ記事詳細検索プラグイン(その2・「ブログ記事のフィールドの値が○○に等しい」場合の検索)
- ブログ記事詳細検索プラグイン(その3・「ブログ記事のフィールドの値に○○を含む」場合の検索)
- ブログ記事詳細検索プラグイン(その4・「ブログ記事のフィールドの値が○○以上」等の場合の検索)
- ブログ記事詳細検索プラグイン(その5・ブログ記事のフィールドどうしでのOR検索)
- ブログ記事詳細検索プラグイン(その6・カテゴリのOR検索)
- ブログ記事詳細検索プラグイン(その7・カテゴリのAND検索)
- ブログ記事詳細検索プラグイン(その8・タグの検索)
- ブログ記事詳細検索プラグイン(その9・カスタムフィールドでの検索の基本)
- ブログ記事詳細検索プラグイン(その10・カスタムフィールドでの検索の応用)
- ブログ記事詳細検索プラグイン(その11・各種の検索条件の指定)
- ブログ記事詳細検索プラグイン(その12・ブログ記事の並べ替え)
- ブログ記事詳細検索プラグイン(その13・検索結果の一部を読み込む)
- ブログ記事詳細検索プラグイン(その14・複雑なOR検索)
- ブログ記事詳細検索プラグイン(その15・検索結果の件数の出力)
- ブログ記事詳細検索プラグイン(その16・検索フォーム作成の基本)
- ブログ記事詳細検索プラグイン(その17・検索結果表示テンプレート作成の基本)
- ブログ記事詳細検索プラグイン(その18・検索を動作させるための設定)
- ブログ記事詳細検索プラグイン(その19・検索フォーム/検索結果表示の事例・1つの数値で検索)
- ブログ記事詳細検索プラグイン(その20・検索フォーム/検索結果表示の事例・数値の範囲で検索)
- ブログ記事詳細検索プラグイン(その21・検索フォーム/検索結果表示の事例・数値の範囲をselectで選択)
- ブログ記事詳細検索プラグイン(その22・検索フォーム/検索結果表示の事例・日付で検索)
- ブログ記事詳細検索プラグイン(その23・検索フォーム/検索結果表示の事例・期間で検索)
- ブログ記事詳細検索プラグイン(その24・検索フォーム/検索結果表示の事例・カテゴリのOR検索)
- ブログ記事詳細検索プラグイン(その25・検索フォーム/検索結果表示の事例・カテゴリのAND検索)
- ブログ記事詳細検索プラグイン(その26・検索フォーム/検索結果表示の事例・タグのOR検索)
- ブログ記事詳細検索プラグイン(その27・検索フォーム/検索結果表示の事例・タグのAND検索)
- ブログ記事詳細検索プラグイン(その28・検索フォーム/検索結果表示の事例・ドロップダウン/ラジオボタンのカスタムフィールドの検索)
- ブログ記事詳細検索プラグイン(その29・検索結果のページ分割/静的な検索の場合)
- ブログ記事詳細検索プラグイン(その30・検索結果のページ分割/動的な検索の場合)
- ブログ記事詳細検索プラグイン(その31・検索結果のページ分割/PHPによるキャッシュ)
- SearchEntriesプラグインでMore Custom FieldsプラグインのCheckbox Groupを検索する(静的編)
- SearchEntries プラグインでMore Custom FieldsプラグインのCheckbox Groupを検索する(動的編)
- SearchEntriesプラグイン不具合修正
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください
kameleon300
Fujimoto様
ブログ記事詳細検索プラグインにつきまして、本と併用して勉強させていただいております。
さて、タイトルの通り、複数の語句にて検索したいのですが、「アイテム カラー」などと検索する際に、間の全角スペースだと検索結果が無しになり、半角だと、複数語として認識される様です。
小粋空間様の「http://www.koikikukan.com/archives/2007/03/22-011323.php」のように全角スペースを自動的に半角スペースに変換することは可能でしょうか?
ご多忙のところ大変恐縮ですが、ご教授願えれば幸いです。
壱
>kameleon300さん
こんにちは。
フォームで入力された文字列の中の全角スペースを、自動的に半角スペースに変換したいということでしょうか。
このプラグインはそのような機能はありませんが、MTSearchConditionsタグのブロックに入る前に、変数内の全角スペースを半角スペースに変換する処理を入れれば良いです。
例えば、フォームの「○○○」という名前のフィールドの全角スペースを半角スペースに変換するなら、以下のように書きます。
<mt:SetVarBlock name="qp_○○○"><$mt:GetVar name="qp_○○○" replace=" "," "$></mt:SetVarBlock>
kameleon300から壱への返信
MTSearchConditionsタグのブロックに入る前に、変数内の全角スペースを半角スペースに変換する処理を入れれば良いです。
ありがとうございます。
ご提示いただきましたタグをいれましたところ、無事半角に変換されるようになりました。
本当にありがとうございました!
oscar
藤本さん、いつもお世話になっているoscarです。
mt-search.cgiでは複合条件での検索が弱いので、このプラグインで検索フォームを作ってみているところです。
タイトル通りなのですが、これはウェブページは検索対象から除外されているんでしょうかね。
ブログ記事・ウェブページ問わずに、検索結果が返ってくるものを作りたいのですが、解決する方法はありますでしょうか?
突然すいませんが、教えていただけますか。
お願いします。
壱からoscarへの返信
>oscarさん
いつもお世話になっております。
MTSearchConditionsタグのブロックに以下のタグを入れれば、ウェブページも対象になります。
<$mt:SearchConditionValues field="class" values="entry","page"$>
ちなみに、以下のタグを入れれば、ウェブページだけを検索することもできます。
<$mt:SearchConditionValues field="class" values="page"$>
oscarからoscarへの返信
藤本さん、ありがとうございます。
mt_entryのフィールドだからそれで良かったんですね。気がつかなかった。
無事にうまくいきました。
oscar
何度もすいません。oscarです。
特定のシークレットタグが付いたものを除外して、検索結果を表示しようとしています。
不明な点が2点あります。
1.<mt:SearchConditionTagSection><$mt:SearchConditionTag tag="@TEST"$></mt:SearchConditionTagSection>のようにシークレットタグを指定した場合に、正常に動作しないように見えます。シークレットタグ以外では動作して表示されてます。
シークレットタグ指定は、動作しないのでしょうか?
2.上記は特定のタグを含むブログ記事を指定する記述だと思います。特定のタグを含まないブログ記事を指定する記述は存在するでしょうか?
申し訳ありません。お教えいただけますか。
壱
>oscarさん
こんにちは。
1.は、MTSearchConditionTagタグに「private="1"」のモディファイアを追加すれば可能です。
2.は現状では対応していません。
oscarから壱への返信
藤本さん、返答ありがとうございます。
シークレットタグは対応可能だったんですね。了解です。
なるほど、2についてはいつか対応してくださる日を期待して、気長に待ちます。
ありがとうございました。
たま
インストールや検索フォーム、詳細検索結果モジュールの設定をし、問題なく動いていました。
詳細検索結果モジュールを、グローバルテンプレートのモジュールに移動しようとして、該当ブログの詳細検索結果モジュールを削除し移動しましたが動かなかった為、元に戻しました。
その後検索をすると以下のエラーメッセージが出るようになってしまいました。モジュール名を変えたり、RealtimeRebuildを再設定したりしましたがどうにも直りません。
どのようにすれば直るでしょうか。ご教授ください。
再構築に失敗しました。 : Statement has no result columns to bind (perhaps you need to successfully call execute first) at /var/www/vhosts/e819.jp/httpdocs/mt/extlib/Data/ObjectDriver/Driver/DBI.pm line 154.
壱からたまへの返信
>たまさん
こんにちは。
申し訳ありませんが、そちらの環境で動作を追ってみないと原因は分からないです。
chairo9
ブログ記事詳細検索プラグイン
http://www.h-fj.com/blog/archives/2010/04/03-102819.php
について教えていただきたくコメントいたします。
こちらのプラグインで作成した複合検索で一度検索をしたあと、
検索結果画面の下部にも同じ複合検索フォームを設置したいと考えています。
(一度検索した方が、再度条件を変更して検索する用です)
その際に、一度目のチェックボックスのチェックをそのままひきついでチェック済みの状態にすることは可能でしょうか?
壱からchairo9への返信
>chairo9さん
こんにちは。
検索結果のページに、検索条件を引き継いだ形でフォームを表示することもできます。
検索結果テンプレートにフォームの部分を作り、MTIfタグを使ってフォームに送信されてきた値を条件判断して、チェックのオン/オフを切り替えるような処理を入れます。
具体的な事例を、書籍「Movable Type 5実践テクニック」の中で紹介していますので、そちらをご参照ください。
http://amzn.to/n0y7UH
Sonique8
はじめまして。
お聞かせいただきたい事があります。
MT5.1系に対応していますでしょうか。
MTの新しいバージョン(5.12)がリリースされていたのでバージョンアップを行おうとしたのですが、並べ替え機能を動作させるためのソースの書き換え箇所が例にあげていただいている記述とすこし違いがありましたので質問させていただきました。
壱からSonique8への返信
>Sonique8さん
こんにちは。
ご質問の件について記事を書きました。
http://www.h-fj.com/blog/archives/2011/08/24-112903.php
Sonique8
ご丁寧な回答ありがとうございます。
早速、試してみたいとおもいます。
Aロード
はじめまして。
行き詰まってしまったので質問をさせてください。
検索ボタンを押すと、
「テンプレートを読み込むことができませんでした。 at lib/RealtimeRebuild.pm line 63.」
というエラーが出てしまいます。
「MovableType5実践テクニック」を手本に、テンプレート名を詳細検索結果としているのですが、読み込まれません。
他にどういった原因が考えられるでしょうか。
よろしくお願いいたします。
壱からAロードへの返信
>Aロードさん
こんにちは。
おそらく、「詳細検索結果」テンプレートモジュールのリアルタイム再構築を許可していない状態だと思います。
本の323ページの「リアルタイム再構築の許可」の手順に従ってください。
Aロード
藤本さん、回答ありがとうございます。
御指摘いただいたリアルタイム再構築は許可にチェックを入れてありました。
解決の手掛かりになるか分かりませんが、検索システムはウェブサイトではなくブログに実装しました。また、詳細検索結果のテンプレートはP.316のリスト4-43を元にカテゴリ条件の指定を入れて作成しました。
お手数をおかけして申し訳ありません。
壱からAロードへの返信
>Aロードさん
こんにちは。
検索フォームのウィジェットと、詳細検索結果のテンプレートモジュールは、同じブログ(またはウェブサイト)に作ってください。
ちなみに、サンプルのテーマでは、両者ともにウェブサイトに作ってあります。
バイセッパ
お世話になっております。
先日問い合わせしました件は無事解決致しました。
ありがとうございました。
検索機能についてお伺いしたいのですが、カテゴリーで絞り込む際に、
カテゴリー名にカンマが入る(例えば数値で「1,000」など)とエラーが発生します。
エラー文は「「include_cat_ids」または「exclude_cat_ids」のモディファイアを指定してください。」となります。
これは回避する方法がありますでしょうか。
壱からバイセッパへの返信
>バイセッパーさん
こんにちは。
現状のプラグインでは、MTSearchConditionCategoryタグでは、「,」はカテゴリを区切る文字になっています。そのため、「1,000」と指定すると「1」と「000」のカテゴリを検索するという動作になります。
とりあえず、MTSearchConditionCategoryタグのcategoryモディファイアを以下のように書き換えて、同じカテゴリを2回指定していただければ、コンマを含むカテゴリも検索できるはずです。
<mt:SearchConditionCategory category="コンマを含むカテゴリ名","コンマを含むカテゴリ名">
バイセッパからバイセッパへの返信
藤本さん
回答ありがとうございます。
御指摘いただいた方法で検索を実行することができました。
ありがとうございました。
高橋
壱さま
お世話になっております。以前に商用ライセンス用としてダウンロードさせていただきました高橋と申します。
フォームを設置し、検索を実行すると500エラーが出ますので、色々と調べたのですが、そもそも設置しようとしているブログの構造が特殊で、
ブログパスにサブドメインを使用しており、ブログ記事などアーカイブには通常のドメインを使っていることが原因のようです。
メインブログのパス:www.example.com
子ブログのパス:sub.example.com
メイン及び子ブログのアーカイブパス:www.example.com
のようになっております。
おそらくこういったケースは想定されていないと思いますが、タグの書き換え等で対応する方法はございますでしょうか?
またはinputタグの部分で、blog idを複数指定しブログをまたがって検索すれば良いのかと思ったのですが、No.17の方と同じエラーになってしまいました。
特殊な例で恐縮なのですが、何か良い解決策があれば、アドバイスをお願い致します。
壱
>高橋さん
こんにちは。
申し訳ありませんが、そちらのサーバーで動作を見てみないと、原因は分かりません。
もっとも、500エラーは「どこかで何かエラーが起こっている」というメッセージなので、サーバーのログを見られないと、原因をつかむのはかなり困難です。
高橋から壱への返信
壱さま
ご返信ありがとうございます。
現在、サブドメインに検索フォームを設置していまして、一旦サブドメインを使用しない設定に変えたところ、無事に動作いたしました。
使用しているサーバーのエラーログが取得できないため、サイトの構造を変えることで対応しようと思います。
ありがとうございました。
>>高橋さん
>こんにちは。
>
>申し訳ありませんが、そちらのサーバーで動作を見てみないと、原因は分かりません。
>もっとも、500エラーは「どこかで何かエラーが起こっている」というメッセージなので、サーバーのログを見られないと、原因をつかむのはかなり困難です。
バイセッパ
藤本様
いつも大変お世話になっております。
一つお伺いしたいことがあるのですが、詳細検索時に選択するカテゴリーに属する記事数が膨大な場合、検索中に高確率で500エラーが起こります。属する記事数が20,30であれば正常に機能しますが、90を超えるあたりからエラーが発生します。
このエラーを回避する方法はありますでしょうか。
壱からバイセッパへの返信
>バイセッパさん
こんにちは。
推測ですが、サーバーのスペックが不足しているのではないかと思います。
ブログ全体を再構築するさいに、500エラーが頻発するようだと、スペック不足の可能性が高いです。
お使いのサーバーはどこの業者でしょうか。
なお、これまでには、同様の不具合の報告は受けていません。
バイセッパからバイセッパへの返信
藤本様
ご返信ありがとうございます。
現在使用しているサーバーは、Wadaxの「スタンダード ブロンズ」で、容量は50GBとなっています。
水野 博文
お世話になっています。
『MTOS活用テクニック』の書籍をすり切れるほど拝読しております。
現在、MTOS4環境でこちらのプラグインを設置してみていますが、
『MTOS活用テクニック』で作成したカスタムフィールドを検索対象とすることはできますでしょうか?
現在、以下のように設定をしていますが、検索対象にはなっていないようです。
もし可能でしたら、ご教授頂けると幸いです。
take
いつもお世話になっております。
素晴らしいプラグインありがとうございます。
コメントのカスタムフィールドを検索することは出来ますでしょうか?
お時間がある時にでもお返事頂けましたら幸いです。
壱からtakeへの返信
>takeさん
こんにちは。
申し訳ありませんが、コメント関係は検索することができません。
WS
藤本様
お世話になっております。
SearchEntriesプラグインを使わせていただいております。
現在、1ウェブサイト(A)、10ブログのサイトを構築中なのですが、
その中の2ブログ(B)(C)の内容を検索し、結果を表示させたいと思っております。
ウェブサイトAの中に検索ページと、検索結果テンプレートモジュールを入れております。
検索ページの中で下記ソースでフォームで入力させ
<form method="get" action="<$mt:RealtimeRebuildCGIPath$>">
<input type="hidden" name="blog_id" value="<$mt:BlogID$>" />
<input type="hidden" name="tmpl_id" value="<$mt:GetTemplateID tmpl_name="検索結果テンプレート"$>" />
<p>
<label for="entry_price_min">年代が <input type="text" name="product_year_min" id="entry_price_min" size="10" />年以上
<input type="text" name="product_year_max" id="entry_price_max" size="10" />年以下
</p>
<p>
<input type="submit" value="送信" />
</p>
</form>
検索結果画面で上記ソースから表示をさせています。
<$mt:GetQueryParamsToVars$>
<mt:SearchConditions include_blogs="2,3">
<mt:SearchConditionCFSection field="product_year">
<$mt:SearchConditionCFCompare ge="$qp_product_year_min" le="$qp_product_year_max"$>
</mt:SearchConditionCFSection>
</mt:SearchConditions>
<mt:IfNonZero tag="SearchLoadedEntryCount">
<p><$mt:SearchLoadedEntryCount$>件 <MTEntries> ■■■■■■■■■■■■■■■■■■■■■■</MTEntries>
<mt:Else>
<p>条件に合う記事がありませんでした。 </mt:IfNonZero>
結果の中で、●件は出ますが、
その後のEntryTitle、EntryBodyが出ません。
検索結果のソースを、<MTMultiBlog include_blogs="2,3">で囲むと全部の記事が表示されてしまいます(条件に合っていない全ての記事)
お手数をおかけし大変恐縮なのですが、何か良い解決策があれば、アドバイスをお願い致します。
壱
>WSさん
こんにちは。
ご指摘の現象を確認いたしました。
対策を検討しますので、今しばらくお待ちください。
壱からWSへの返信
>WSさん
こんにちは。
修正版を公開しました。
http://www.h-fj.com/blog/archives/2012/12/19-162148.php
WSからWSへの返信
藤本様
修正版のプラグインに変更したところ、うまく動作しました。
ありがとうございます!!
>>WSさん
>こんにちは。
>修正版を公開しました。
>http://www.h-fj.com/blog/archives/2012/12/19-162148.php
WS
壱様
以前に質問させていただいたWSです。
その時はありがとうございます。
さて、またsearchentriesプラグインで質問があります。
今回は複数のチェックボックス(Checkbox Groupで、グループ化せず)で検索を行いたいのですが、うまくいきません。
以下に書いていたソースを記述しますので、どこが悪いのかご教授いただけますでしょうか。
■テンプレート
<form method="get" action="<$mt:RealtimeRebuildCGIPath$>">
<input type="hidden" name="blog_id" value="<$mt:BlogID$>" />
<input type="hidden" name="tmpl_id" value="<$mt:GetTemplateID tmpl_name="チェックボックス検索結果"$>" />
<mt:LoadCustomFieldInfo basename="product_check01">
<mt:CustomFieldOptions>
<input type="checkbox" name="product_check01" value="product_check01" /> 廃盤
</mt:CustomFieldOptions>
</mt:LoadCustomFieldInfo>
<p>
<input type="image" id="btn" src="common/img/search_btn.jpg" alt="送信" />
</p>
</form>
■チェックボックス検索結果(モジュール)
<$mt:GetQueryParamsToVars$>
<mt:SearchConditions>
<mt:If name="qp_product_check01">
<mt:SearchConditionTagSection>
<$mt:SearchConditionTag tag="$qp_product_check01"$>
</mt:SearchConditionTagSection>
</mt:If>
</mt:SearchConditions>
<mt:IfNonZero tag="SearchLoadedEntryCount">
<p><$mt:SearchLoadedEntryCount$>件</p>
<mt:Entries>
<$mt:Include module="ブログ記事の概要"$>
</mt:Entries>
<mt:Else>
<p>条件に合う記事がありませんでした。</p>
</mt:IfNonZero>
お忙しいところ大変恐縮ですが、よろしくお願い致します。
壱
>WSさん
こんにちは。
MoreCustomFieldsプラグインのCheckbox Groupをお使いだと思いますが、その場合の検索方法については、以下の記事で紹介しています。
http://www.h-fj.com/blog/archives/2010/09/07-120907.php
http://www.h-fj.com/blog/archives/2010/09/08-104858.php
WSから壱への返信
壱様
MoreCustomFieldsプラグインのCheckbox Groupを使わずに、checkboxのチェック有無で検索をかけたいのですが、可能でしょうか。
出来ないのであれば、MoreCustomFieldsプラグインのCheckbox Groupを使おうと考えております。
>>WSさん
>こんにちは。
>MoreCustomFieldsプラグインのCheckbox Groupをお使いだと思いますが、その場合の検索方法については、以下の記事で紹介しています。
>http://www.h-fj.com/blog/archives/2010/09/07-120907.php
>http://www.h-fj.com/blog/archives/2010/09/08-104858.php
壱から壱への返信
>WSさん
こんにちは。
検索結果テンプレートからすると、個々の記事にタグを付けていらっしゃるようです。
そうであれば、検索フォームのチェックボックスもタグから出力するようにします。
検索フォームからMTLoadCustomFieldInfoタグのブロックを削除し、代わりに以下を入れてみてください。
キムちゃん
藤本 様
いつもお世話になります。
SearchEntriesプラグイン、利用させて頂いております。
SearchEntriesプラグインを使って、ウェブページ・ブログ記事を対象に
全文検索できないか作業していますが、検索されず、うまくいきません。
「MovableType5実践テクニック」などを参考に以下のように組んでいます。
上記のように組んでいますが、キーワードを入れて検索しても、
「条件に合う記事がありませんでした。」としか表示されません。
どこが悪いのか調べているのですが、イマイチわからず、ご質問させて頂きました。
お忙しいところ、恐縮ではございますが、
ご教授の程、よろしくお願い致します。
壱
>キムちゃんさん
こんにちは。
コメントにあった部分を、1つのテンプレートに入れている状態でしょうか?
そうであるなら違います。
フォームの部分と、検索結果を表示する部分は、別のテンプレートに入れます。
具体的な手順については、書籍をご参照ください。
また、GetQueryParamプラグインをインストールして、MTSearchConditionsタグの前に<mt:GetQueryParamsToVars>というテンプレートタグを入れる必要があります。
GetQueryParamプラグインは以下からダウンロードできます。
http://www.h-fj.com/mt_plugin/GetQueryParam_1_14.zip
キムちゃんから壱への返信
>藤本 様
お世話になります。
ご質問のご返信、ありがとうございました。
さっそく、mt:GetQueryParamsToVarsを入れたところ、
検索結果の件数は出るのですが、肝心のタイトルや本文が表示されずにおります。
ウェブサイト全体(ウェブページ、ブログ)を全文検索したいので、以下のように打ち込んでいます。
■検索フォーム
■検索結果
mt:Entriesの上に"mt:Blogs include_blogs"なども入れて試したのですが、そうすると関係ない記事のタイトル・文が出てきてしまいました。
お忙しいところ、恐れ入りますが、ご教授の程、よろしくお願いします。
壱から壱への返信
>キムちゃんさん
こんにちは。
SearchEntriesプラグインのバージョンはいくつでしょうか。
Movable Type 5.2以降でSearchEntriesプラグインを使い、プラグインのバージョン1.04以前の場合、MTSearchConditionsタグでinclude_blogsモディファイアを使うと、MTEntriesタグで記事が出力されません。
そうであれば1.05をお使いください。
http://www.h-fj.com/mt_plugin/SearchEntries_1_05.zip
tomo
はじめまして。SearchEntriesを使用して検索フォームを実装しようとしていて
分からない点があったので、こちらで質問させてください。
複数のカスタムフィールドと、タグ、タイトルをまたいだ
複数キーワードのAND検索は実装可能でしょうか?
例えば、キーワードを「○○ ××」として、
カスタムフィールド1、カスタムフィールド2、タグ、タイトルのどれかに
「○○」と「××」両方が含まれているという状態にしたいです。
(※ただし、特定の1つのフィールドに複数のキーワードが含まれている時だけではなく、カスタムフィールド1に「○○」、タイトルに「××」が含まれている……といったケースでもヒットさせたいです)
可能な場合、どうやって記述するかヒントをいただけると大変助かります……。
お忙しいところ恐縮ですが、ご回答の程何卒宜しくお願い致します。
壱からtomoへの返信
>tomoさん
こんにちは。
複雑になりますので、申し訳ありませんが解答は有償とさせていただきます。
tomoからtomoへの返信
藤本さま
返信ありがとうございました。
回答についてですが、有償とのことで承知致しました。
支払い方法と金額について、ご連絡いただけますでしょうか。
(メールフォームから問い合わせる形になりますか?)
お手数ですが、宜しくお願い致します。
yasu
藤本様
お世話になります。
こちらのプラグインですがMT6でも使用することは可能でしょうか?
お手数ですがよろしくお願い致します。
壱からyasuへの返信
>yasuさん
こんにちは。
当プラグインはMovable Type 6.0でも動作を確認しています。
MT6用にDataAPI対応機能を追加したバージョン1.10をお使いください。
http://www.h-fj.com/mt_plugin/SearchEntries_1_10.zip
MT6用の機能の解説は以下の記事をご参照ください。
http://www.h-fj.com/blog/archives/2014/02/25-222215.php
http://www.h-fj.com/blog/archives/2014/02/26-131723.php
http://www.h-fj.com/blog/archives/2014/02/27-103028.php
http://www.h-fj.com/blog/archives/2014/03/03-093314.php