【WP】カスタムしたパーマリンクのページをSearch & Filterでヒットするようにする方法

WordPress

どうもご無沙汰してます。coto.です。

今回はWordPressの検索プラグイン「Search & Filter」の小ネタです。
このプラグイン、絞り込み検索やカスタムタクソノミー毎での検索ができるなど無料版でも検索機能のオプションが充実していて、かつ自由度が高いので愛用しています。

Search & Filter の使用例。もちろん日本語も使えます。

今回やったこと

で、今回行ったのは

少し特殊な設定をしたパーマリンク付きのページ(デフォルトじゃないURLのページ)を検索対象にする

ということ。

少し説明

それだけじゃ何言ってんだ?って感じだと思うので少し説明します。

このブログではないんですが、変な構造のURLを使っているサイトを運営していまして。
このブログのURLを使って説明すると、

https://it.cotomil.com 

という基本的なURLがあり、デフォルトというか普通の設定なら

https://it.cotomil.com/カテゴリ名/個別投稿のパーマリンク

のようになりますよね。
ただ今回のサイトでは、

https://it.cotomil.com/en/カテゴリ名/個別投稿

と自動ですべてのページに/enが入るような設定をしています。
しかもたぶん正規の方法ではなく小手先のテクで無理やり入るようにしてる…
こうしている理由は言語設定とかWordPressの途中分岐とかまあ色々なんですが、
初心者のミスてのもありますね。はい。

何も設定しないとどうなるか

ともかくこのサイトでこのままSearch & Filterを使うと、たとえ下図のようにヒット件数が表示されていても、検索結果ページには 404エラー(このページは存在しないよ)が出てしまいます。

件数が表示されていても検索結果には現れない。

このようなエラーが出る理由は、Search & Filterはデフォルトのワードプレスに従っているので、

https://it.cotomil.com/検索条件

で探そうとするからです。あたりまえですけども。
「ヒットしませんでした」ではなく「ページが存在しません」なのがミソですね。

やりたいことと解決方法

サイト内検索は絶対に必要なジャンルのサイトであることと、Search & Filterの使い勝手を手放したくないことを鑑みて、Search & Filterを少しいじることにしました。

やりたいこととしては、

Search & Filterの検索ボタンを押したときに表示されるページ(のURL)に/enを挟む

です。

早速解決方法ですが、

①WP>プラグイン>プラグインファイルエディター>編集するプラグインを選択>Search & Filter

プラグイン編集画面の一部

②search-filter.php のURLを指定する部分に “en/”. を追加する
 今回はカテゴリー名の前に追加するための698行目

698行目に”en/”. を追加する

と、カスタムタクソノミーの前に追加するための873行目

873行目に”en/”. を追加する

に入れました。これで問題なく検索結果が表示されるようになるはずです。

こちらのサイトでは必要ありませんでしたが、場合によってはキーワード検索のほうもいじったほうがいいかもしれませんね。

phpやっている人には不要の説明かと思いますが、
“en/”. の「.」は「足してね」って意味なので省略しないでください。

御託

この方法はそれほど難しくないのですが、Search & Filterがアップデートされるとたぶん元に戻ってしまいますね。あと稼働中のプラグインの中身をいじるのはあまり推奨できません。

気になる方はうまいこと回避してください。すみません。

ちなみに今回編集成功したSearch & Filterのバージョンは1.2.14です。

コメント