勉強したことのメモ

webプログラマが勉強したことのメモ。

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/

 

まとめ

プラグインのスイッチャー用ファイルを編集することでクエリを引き継いだ上で、言語変更が行える。尚、プラグインをアップデートした場合は再度書き換えの必要が出てくると思われるのでその点注意する。

 - WordPress

  関連記事

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で立ち上げたサイトがあり、しばらく放置していたが久しぶりにチェ ...