Alexx The Rocks

雑記。

【WordPress】検索対象をカスタマイズしたい【カスタムフィールド】

2021年9月18日 更新
Categoryweb制作
tag

前回からの続き

あげたい人・もらいたい人、貸したい人・借りたい人を結びつけるような、マッチングサイトを作りたい。WordPressなら何とかいけるやろ、と思ってざっくりと考えてみた備忘録。
前回はMW WP formを使って、フォームからの投稿と、それぞれの投稿に対するフォームの送信先を変えた。
次は、カスタム投稿からの検索周りの設定。
■WordPressのバージョン:5.8
■サーバー:xampp

複数のカスタムフィールドから検索をしたい

WordPressはデフォルトでカスタムフィールドは検索対象ではないようで、カスタムフィールドを検索対象にするにはfunctions.phpの編集等をしなければならない。いくつかやり方はあるみたいだが(検索ページのテンプレートを編集する方法)、今回はfunctions.phpの編集だけでやるようにした。

カスタム投稿の記事から検索をさせる

参考にさせて頂いたサイトはこちら。
https://oku-log.com/blog/wp-search/
『WordPress』でカスタム投稿毎にsearch.phpを切り替える | oku-log

カスタム投稿用の検索ページを設定。

カスタムフィールドから検索できるようにする

先に用意したフォームから、カスタムフィールドのキーワードで検索するようにする。
参考にさせて頂いたサイトはこちら。
https://www.scitech.co.jp/include-customfields-search-target
WordPress内の検索対象にカスタムフィールドも適用する | サイテックファクトリー

複数設定したカスタムフィールドで、検索対象から外したいカスタムフィールドもあったのでこれでOK。かと思いきや…

カスタムフィールドをまたげない

カスタムフィールド(以下cf)を複数設定(「cf1」「cf2」「cf3」「cf4」…)して、例えばcf4の値は除外したいというのは出来たが、cf1とcf2のキーワードを入力すると検索結果で0が返る。別の方法を調べる。

他の方法でカスタムフィールドから検索できるようにする

調べていて出てきたのがこちらのサイト。
https://mohulog.com/20180620_1732/
WordPressのサイト内検索でカスタムフィールドの内容も検索結果に含める方法|もふLOG

これでcf1、cf2、…と複数のカスタムフィールドから検索が可能になった。

でも、特定のカスタムフィールドは検索対象から外したい

しかし、上記の方法のままでは特定のカスタムフィールドの除外が出来ない。ので、こちらのサイトを参考に追記。
https://kazunori-miura.tumblr.com/post/189502558056/wordpress%E3%81%AE%E6%A4%9C%E7%B4%A2%E5%AF%BE%E8%B1%A1%E3%82%92%E7%89%B9%E5%AE%9A%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AE%E5%80%A4%E3%81%AB%E9%99%90%E5%AE%9A%E3%81%99%E3%82%8B
Kazunori Miura — WordPressの検索対象を特定のカスタムフィールドの値に限定する

カスタムフィールドの設定数にもよるが、このやり方で除外も可能になった。