多言語プラグインのPolylangで検索ができないときの対処法
ちょっとした小ネタ。
PolylangってWordPressの多言語プラグインを使ったサイトの弄くりがあって、そのときに検索フォーム関係でトラブったのでTIPSを書いておく。
Polylang入れると、ベースの言語設定以外は、例えば英語とかなら/en/でサイトパスが区切られる。
ただ、このとき検索フォームのformタグのactionに普通にhome_url(‘/’)とかやっても、固定ページがトップページに設定されているときとかで、検索ができない。
なので、そういうときはこんな感じで対処する。
<form method="get" id="search" action="<?php echo get_site_url('', '/').(pll_current_language() != 'ja' ? pll_current_language().'/' : ''); ?>"> ~~~ </form>
上記は日本語をベースとしたサイトでの設定。
pll_current_language()で言語の文字列が取れてくるので、ja以外のときにこれをactionのURLに指定すればいい。