サイト内検索フォームをつくってウィジェットに追加する

よくサイトの右上やサイドバーにある、検索フォームをつくります。

検索フォームをつくる

まず、検索フォームそのものを記述するsearchform.phpを作成し、以下を記述します。

検索結果ページをつくる

続いて、検索した後、結果が表示されるテンプレートsearch.phpを作成します。

サイドバーを設置する

以下の記述で、お好きな場所に検索フォームを表示させることができます。

ただ、サイドバーをウィジェットで設定している場合も多いかと思います。
ウィジェットでは通常のままだとphpを使用することができませんので、フォームを出力できません。困った。
方法としては、
①sidebar.phpで出力
②旧ウィジェットに戻して、phpを使用できるようにする
の2つです。

①sidebar.phpで出力

特に問題ないのであれば、基本的にはこちらで解決するが簡単ですしおすすめです。
sidebar.phpは以下のようになります。

検索フォームだけはテンプレートで、他の項目はウィジェット側で管理している状態です。

②旧ウィジェットに戻して、phpを使用できるようにする

ウィジェットでphpを使えるようにしちゃえばOK!という話なのですが、wordpress5.8のアップデートで、ウィジェットもブロックエディター仕様になりました。
色々試してみたのですが、ブロックエディターでphpを使用する…というのは今のところ難しそう。。
ということで、ウィジェットでphpを使用するためには、まず旧ウィジェットに戻す作業が必要になります。

ただ、今後のアップデートで旧ウィジェットが使用できなくなる可能性もあります。
どうしても何らかの都合でsidebar.phpではできない!というときだけの対応ですかね。。
私もいまだにブロックエディターに大いに抵抗があるのですが、慣れておかないとだめですね…

以下、手順。
下記をfunctions.phpに記述して、旧ウィジェットに戻します。

そしてphpを使用できるようにします。

使用するウィジェットは「テキスト」で、ビジュアルではなく「テキスト」タブに記述するとphpが認識されますよ。

こちら参考にさせていただきました↓
https://hirashimatakumi.com/blog/3109.html
https://open-cage.com/classic-widgets/

タイトルとURLをコピーしました