Polylangのスイッチャーでクエリを引き継ぐ
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/
まとめ
プラグインのスイッチャー用ファイルを編集することでクエリを引き継いだ上で、言語変更が行える。尚、プラグインをアップデートした場合は再度書き換えの必要が出てくると思われるのでその点注意する。
関連記事
-
-
PHP5.1系にWordPressを入れる方法
無料レンタルサーバーにWordPressを突っ込むと、 「 サーバーの PHP ...
-
-
WordPressサイトのロードアベレージが高い
あるWordPressサイトのロードアベレージが先月ぐらいまでは通常0.5前後で ...
-
-
WordPressのウィジェットをTOPのみ等、特定のページだけ表示する方法
■やりたかった事 TOPページのみ任意のウィジェットを表示させ、記事ページやアー ...
-
-
WordPressにてACFで設定したカスタムフィールドの値を元に記事を並べ替える方法
WordPressにてAdvanced Custom Fieldsで設定したカス ...
-
-
WordPress記事本文の文字検索と置換方法
WordPressの記事本文内にhogeという文字列が含まれていた場合、hoge ...
-
-
contact form7で500エラー
WordPressプラグインのcontact form7で送信ボタンを押し、ロー ...
-
-
WordPressでメモリを節約しつつ高速化する設定方法
メモリ1GのVPSを借りてWordpress以外にも、ちょいちょいものを置いてい ...
-
-
WordPressの管理画面で記事一覧にアイキャッチ画像を表示
WordPressの管理画面で記事一覧にアイキャッチ画像を表示させる方法のメモ。 ...
-
-
Advanced Custom Fieldsで記事取得
WordPressでAdvanced Custom Fieldsにて設定した項目 ...
-
-
WordPressでサイトが改ざんされた際の対処方法
WordPressで立ち上げたサイトがあり、しばらく放置していたが久しぶりにチェ ...