MENTAやTimeTicketでZoomオンライン指導・メンタリングを行っています。
WordPressやHTMLサイトのトラブル、SEO対策のご相談、HTML・CSS・WordPressなどのレクチャーなどが可能です。


【未来 様】サイドバーの最近の投稿リストにサイト内検索で出てきた記事リストが出力されるように

WordPressのサイドバー(ウィジェット)には最近の投稿のタイトルリストを出力できますが、これはサイト内検索した時も全く変わらず、常に同じままです。これを他のブログシステムではよくあるように、デフォルトでは最近の投稿リストになっていても、サイト内検索をかけた時は検索で出てきたエントリータイトル一覧が出力されるようにしたいのです。いろいろ調べましたがわかりません。初心者ですがテーマは未使用で自作してます。
どなたか教えてくださいませ。


>未来 さま
ご相談ありがとうございます。

「最近の投稿」はあくまで「最近の投稿」なので検索結果のページであろうと出力結果は変わらないです。

僕もいくつかWordPress以外のブログを見てみたのですが、「サイト内検索をかけた時は検索で出てきたエントリータイトル一覧が出力される」というブログシステムが見当たりませんでした。参考URL的なものがあれば参考までに見てみたいです。

検索すると、
1.メインコンテンツ部分に検索ワードに関する記事が出てくる
2.それとは別にサイドバーなどに最新記事も表示される
これは少なくともWordPressではよくある構成ですので、未来様の仰るような仕様にするにはカスタマイズが必要かと思います。

例:検索結果ページで条件分岐させてウィジェットの内容を差し替える
検索結果を表示するテンプレートsearch.phpや、検索結果か否かを判別するis_searchなどの条件分岐があります。
WordPress 関数リファレンス is_search

既存のテーマのsearch.phpを確認する方法もあるでしょう。多くの場合はウィジェエト表示エリアとしてsidebar.phpを持っているので、sidebar.phpの中でis_searchを使う方法もあると思います。

参考にして頂ければ幸いです。

おすすめコンテンツ

“【未来 様】サイドバーの最近の投稿リストにサイト内検索で出てきた記事リストが出力されるように” への2件の返信

  1. 早速のご返事ありがとうございます。
    たとえばこのサイトなど 右サイドでselected entryとなってて、デフォルトでは最新の記事のみのようですが、検索すると検索にひっかかった記事のリストが出てきます。
    別に、wordpress で最近の投稿のところに出なくても、要は私は、最近の投稿とは別でも全くかまわないので、検索でひっかかった投稿リストをサイドバーに出したいだけなのですが、page phpを作るとか書かれてるのを見ても私にはよくわかりません。具体的にどんなタグの書かれたページをどんな風に設定していけばいいのかを誰かに教えてほしいのです。ページを作る云々書かれてあるところはあるようですが、セッティングの仕方などが初心者の私にはさっぱりわかりません。恐れ入りますが具体的な記述とセッティングの仕方をご教授いただきたいと考えているのですが・・・

    1. >未来さま
      jugemでしたか。hatenaやseesaa、ameba等を見ても該当する仕様がなかったもので・・・
      検索すると確かにメインコンテンツとサイドに検索結果が出てきますね。タイトルのみかどうかの違いで、同一の結果が2か所に表示されているようです。

      こういったものは設定などでどうにかなるものではありません。具体的な記述となると独自にコードを書くことになるので、当サイトでは無料質問対応の域をでることになります。
      WordPressは基本、テーマやプラグインで欲しい機能が無ければPHPでコードを自作するしかありません。テーマは自作されているということでしたので、お伝えした情報からカスタマイズ等が可能かなと思った次第です。

      そのものズバリの機能やカスタマイズ方法、ウィジェットやテーマはちょっと存じ上げないので、コピペなどで使えるものは無いかもしれませんね。
      やはり既存テーマの検索がどういったPHPコードで動いていて、それをどうサイドバーに表示させるかを検証していくしかないかと思います。(あとはそれを自分で行うか、依頼するかどちらかだと思います)

      ご自身でやられるとして、
      ・検索結果の記事一覧がどのように表示されているかを知ること
      ・それをウィジェットで、「検索結果が表示されている」条件の分岐で行う事
      この二つを行うのに必要な情報がsearch.phpやis_searchといった関数になります。

      参考にして頂ければ幸いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA