Polylangのスイッチャーでクエリ(GETパラメータ)を引き継ぐ方法
2024/02/22
WordPressで多言語サイトを作成するにあたりPolylangというプラグインを使用したところ、言語スイッチャーを切り替えた際にURLは切り替わるものの「tag=1」や「category=hoge」のようなクエリは引き継がれなかった。ダッシュボードの設定からはどうにもできなさそうだったので、プラグインファイルを編集することで解決した。以下に方法をメモ。
プラグインファイルに追記
スイッチャー用ファイル(/plugins/polylang/include/switcher.php)の190行目あたりに以下を追記する。
foreach ( $links->model->get_languages_list() as $language ) {
/*ここから追記箇所*/
$tmp_query = '';
if( $_GET['category'] ){
$tmp_query = '?category=' . $_GET['category'];
}
if( $_GET['tag'] ){
$tmp_query = '?tag=' . $_GET['tag'];
}
/*ここまで追記箇所*/
$url = $links->get_translation_url( $language ) . $tmp_query; //後ろに . $tmp_queryを追記する
$urls[ $language->slug ] = $args['force_home'] || empty( $url ) ? $links->get_home_url( $language ) : $url;
}
プラグインのバージョン
念のため、使用中のバージョンは2.3.4になる。また、プラグインは以下の通り。
https://ja.wordpress.org/plugins/polylang/
まとめ
プラグインのスイッチャー用ファイルを編集することでクエリを引き継いだ上で、言語変更が行える。尚、プラグインをアップデートした場合は再度書き換えの必要が出てくると思われるのでその点注意する。
関連記事
-
-
WordPressで複数のカテゴリーを取得する方法(get_the_category_list)
WordPressで1つの記事に対して複数カテゴリを設定していた場合、テーマによ ...
-
-
PHP8系で「Warning: Attempt to read property "xxxxxx" 」エラーの対応方法
PHP8系&WordPress6.4.3で「Warning: Attem ...
-
-
youtubeの検索結果をWordPressに自動投稿する方法
youtubeから特定のキーワードで検索した動画をWordPressに自動で投稿 ...
-
-
WordPressテーマファイル内のfunctions.phpの初期設定についてメモ
WordPressのテーマファイル作成時にfunctions.phpを書くが、い ...
-
-
WP Social Bookmarking LightでSNSボタンが表示されない際の対応方法
WordPressでWordPress WP Social Bookmarkin ...