@var_dump

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

wordpressサイト内検索をした際に検索結果ページの特定の位置にジャンプさせたい

WordPreesでサイト内検索の検索結果ページで見出しの位置までジャンプさせたい(URLの最後に"/#id"をつけたい)のですが、検索結果ページのURLを操作する方法がわかりません。

<form action="<?php echo esc_url( home_url( '/' ) ); ?>" method="get">
	<p>カテゴリ選択</p>
		<label><input type="checkbox" ><span>カテゴリ</span></label>

		<input type="hidden" name="s" value="<?php the_search_query(); ?>">
		<input type="submit" class="btn" value="検索する">
</form>
0 likes

3Answer

Comments

  1. @var_dump

    Questioner

    ありがとうございます!
    検索フォームから検索した際の検索結果ページのURL(https://example.com/?s=キーワード) の最後に"/#id"をつけて出力したいのですが、こちらの記事で実装は可能ですか?

URL フラグメント の機能を使いたいということですか?

そのためにはブラウザからフラグメント込みの URL でリクエストをかける必要があると思いますが、そういう操作ができるような実装をしたいということですか?

0Like

Comments

  1. @var_dump

    Questioner

    はい!そいうことです!

  2. 以下の様な話でしょうか?

    (1) あるワードで検索をかけるとそのワードの含まれる記事一覧が記事へのリンクとともに表示される。以下の様な感じ(WordPress ではありません)

    search.jpg

    (2) リンクの url には検索ワードに関わるフラグメントを付与する。例えば、httpclient で検索したとすると #httpclient とか。

    (3) リンクをクリックするとその url が要求され、応答が返ってきたとき文書内で id="httpclient" のついた要素にスクロールする。

    とすると、(3) のところで html 文書内で id="httpclient" を事前に付与しておかなければならないのですが、そこは何ともならならず、実現不可能と思いますが。

URLの最後に"/#id"をつけたい

単にフラグメント付けるだけなら

- <form action="<?php echo esc_url( home_url( '/' ) ); ?>" method="get">...</form>
+ <form action="<?php echo esc_url( home_url( '/' ) ) . '#id'; ?>" method="get">...</form>

で、付与できますが、このソースはWordPress本体かテーマでしょうか?
どちらにせよ直接的な変更は推奨されません

テーマなら子テーマを作る、或いはプラグインとして独立する必要があります。

0Like

Comments

  1. @var_dump

    Questioner

    ありがとうございます!やりたかったことができました!
    テーマはオリジナルテーマです。

    数日試行錯誤していたので本当に助かりました!

Your answer might help someone💌