- ベストアンサー
WordPressで完全一致検索
WordPressで完全一致検索ができる検索窓を作ろうと思っています。 幾つかサイトを見てみましたが 「投稿本文のみの完全一致検索」は見当たりませんでした。 function.phpにこういう設定すればできますというような情報がありましたら教えていただきたいです。 参考サイト: WordPressの検索機能をもっと使いやすくする | Webクリエイターボックス http://www.webcreatorbox.com/tech/wordpress-search/
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ANo.2です >その検索窓には数値入力しかさせない予定です。 「数値入力のみ」ですか?そうなると記事の数字部分だけを抜き出してチェックするということですよね? #それを「完全一致検索」と呼称されるとちょっと(汗 $searchと一致する数値文字列が$strに存在するかどうかは preg_match_all('/[0-9]+/', $str, $matches); if (in_array($search, $matches[0])) { // 一致した場合の処理 } で書けると思います(Wordpressの検索にどう組み込むかは不知)。
その他の回答 (3)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
>「投稿本文のみの完全一致検索」 文字通りに、投稿本文の完全一致検索をするのであれば、 本文からIDを検索するSQLを発行してやれば良いと思います。 <?php $the_id = $user_count = $wpdb->get_var($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_content = $keyword;")); $post=get_post(intval($the_id)); setup_postdata($post); ?> <p><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>へのパーマリンク"><?php the_title(); ?></a></p> SQLインジェクション対策してません。 未検証です。 本文にインデックスがありませんので、投稿数が多ければ相当時間がかかると思います。 search.phpに書き込むのが簡単で良いと思います。 検索キーワードは global $query_string; から s=keyword を分割取得する方法しかわかりません。 http://wpdocs.sourceforge.jp/Creating_a_Search_Page#.E6.A4.9C.E7.B4.A2.E3.83.9A.E3.83.BC.E3.82.B8.E7.B5.90.E6.9E.9C.E3.81.AE.E4.BF.9D.E5.AD.98.E3.81.A8.E3.83.9A.E3.83.BC.E3.82.B8.E5.88.86.E5.89.B2
お礼
ご回答頂きありがとうございます。 post_contentが良いヒントになりました。
- shimix
- ベストアンサー率54% (865/1590)
完全一致という意味を理解していますか? ANo.1の方は本文内容を「そのまま」検索窓にコピペしないとHitしないような検索に意味があるのか(そんな入力が出来るなら、検索することもない)と指摘されています。 >例えば1で検索すると10も11もあたってしまいます。 >1を探すために苦労してしまうので完全一致をする設定を模索中です。 でも完全一致なら、「これは1ですよ」という本文に対して「これは1です」も「これは1ですよね」もHitしません。本文中の改行の数まで合わせないといけないのでtextareaで入力することになりますが、そんな検索って見たことがありますか?
お礼
ご回答頂きありがとうございます。 無事解決致しました。
補足
ご回答いただきありがとうございます。 おかしな検索なのはわかっております。 その検索窓には数値入力しかさせない予定です。
- bin-chan
- ベストアンサー率33% (1403/4213)
「投稿本文のみの完全一致検索」を実現できるほど "本文の内容がわかってる" なら、 検索する必要は無いのでは?
お礼
ご回答頂きありがとうございます。 無事解決致しました。
補足
ご回答いただきありがとうございます。 投稿データ数が数多く、本文の中身が数字の羅列です。 例えば1で検索すると10も11もあたってしまいます。 1を探すために苦労してしまうので完全一致をする設定を模索中です。
お礼
ご回答頂きありがとうございます。 お陰様で解決致しました。 taloo様の内容にあったpost_contentがコンテンツに対し shimix様の正規表現であいまい検索の中で抽出したものに対し更に絞込みました。 それをsearch.phpに表示させる形にしたのでWordPressのバージョンアップにも耐えうる修正になりました。 お二方のヒントのおかげです。 最初にヒントを頂いたshimix様をベストアンサーとさせて頂きます。