wordpressでブラウザに表示される検索結果のURLに%5B%5Dが表示されてしまう時の対処(アドレスバーのURLをデコードして置き換える)

自作した検索機能で検索結果を表示した時こんな風になっていることがある
ttps://hogehoge.org/search?clothing%5B%5D=hakama&clothing%5B%5D=tuxedo

見た目もダサいし、初心者が作ったっぽくて嫌だ

希望としてはこんな風にしたい
ttps://hogehoge.org/search?clothing[]=hakama&clothing[]=tuxedo

%5Bとか%5DはURLエンコードされた文字列であり、%5B%5D → []、%20 → スペースなどを意味する

結論、WordPressの検索結果テンプレート(例:search.php や archive-search.php)の や 内でこのスクリプトを読み込めばOK


  // 現在のURLを取得
  const currentUrl = window.location.href;

  // デコードされたURLに置き換える
  const decodedUrl = decodeURIComponent(currentUrl);

  // アドレスバーのURLを置き換える(ページの再読み込みはされない)
  window.history.replaceState(null, '', decodedUrl);

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