質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

2568閲覧

【WordPress】検索時に本文中のスペースを無視させたい

lifemusic

総合スコア12

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

3クリップ

投稿2017/02/18 21:28

###前提・実現したいこと
WordPressでサイトを作成しています。
プログラムの知識はほぼない素人なのですが、
どうしてもここだけは改変したい・・・という点があり悩んでいます。

現在、デフォルトの機能を使って、検索フォームを設置しています。
検索対象はすべて人名で、姓と名の間には、半角スペースが入っています。
姓と名を半角スペースで区切って入力すると、姓名バラバラでAND検索します。
その結果、まったく違うものもヒットします。
かといって、半角スペースを入れなければ、当然何もヒットしません。

本文中の半角スペースを無視して連結し、
該当の人名だけをヒットさせる方法はありますか?

###試したこと

検索すると、str_replaceという関数を使う例が多数あるのですが、
置換して出力ではなく、検索するときだけ無視する、という
参考になるものがなかなか見つかりません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

こんにちは。wordpressの検索についてはもともとand検索が
広くヒットする仕様だったと記憶しております。

厳密にand検索を実装するとするとWP_Queryで
タグやカテゴリ機能もしくはカスタムフィールドなどを含めて
実装する方法でしょうか。

ちなみに検索対象は投稿もしくはカスタムポストの本文に書かれている前提で考えてみましたが
こちらはあっていますでしょうか。

str_replaceという関数はphpのものである文字列のデータの中から検索するというものになります。
半角スペースを無視するという方向で考えると正規表現などで半角スペースを除去し~~~
という流れになりますが、氏名の場合、苗字と名前を判別するのはかなり難易度が高いと思います。
(苗字のような名前の人が実在しますのでここを判別するのはビックデータや人工知能系を絡めて精度を上げるしかない気がします)
これがカスタムフィールドで氏名を管理していればスペースを除くだけなのでいけそうな気もします。

ですので管理する方向から考えていったほうがいいような感じがします。
wordpressのデータベースを簡単に検索置換できるプラグインもありますので

バックアップを取ったうえで

どのように運用するかを含めて使ってみてはいかがでしょうか。
https://www.adminweb.jp/wordpress-plugin/list/index27.html

投稿2017/02/19 02:43

ruuusaamarki

総合スコア468

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lifemusic

2017/02/20 19:25

回答ありがとうございます。 検索対象はポストの本文ですが、1ポスト中に大量の氏名が含まれカスタムフィールドは厳しいです。 苗字と名前を判別できなくてもよいのですが、スペースで区切られている語句を一続きにして検索することで、誤ヒットが減るのではと思ったのです。 Googleカスタム検索も試してみましたが、いまのところ一長一短です。
ruuusaamarki

2017/02/21 01:46

カスタムフィールドが難しいとなると正規表現であぶりだすくらいしか当方のスキルでは思いつきませんでした。すみません。http://blog.livedoor.jp/sasata299/archives/51809374.html 上記もポストのデータがどんな形で入っているかで難しい場合もあります。ポストのデータがどのような形で入っているかをご提示(サンプルで同じように作ったものでも)いただくと達人の方々が助けてくれるかもしれません。スペースのみを一括削除するという方法であれば前述のプラグインやmysqlでできたと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問