勉強したことのメモ

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

Polylangのスイッチャーとページャーの組み合わせ

   

WordPressで多言語サイトを作成するにあたりPolylangというプラグインを使用したところ、言語スイッチャーを切り替えた際にURLは切り替わるものの「page/2」のようなページャー情報は引き継げなかった。以下に対応方法をメモ。

 

プラグインファイルを編集

スイッチャー用ファイル(/plugins/polylang/include/switcher.php)の190行目あたりに以下を追記する。

foreach ( $links->model->get_languages_list() as $language ) {
	$tmp_page = (int)get_query_var('paged');
	$tmp_page_query = '';
	if( $tmp_page ){
		$tmp_page_query = '/page/'.$tmp_page;
	}

	$url = $links->get_translation_url( $language ) . $tmp_page_query;
	$urls[ $language->slug ] = $args['force_home'] || empty( $url ) ? $links->get_home_url( $language ) : $url;
}

 

また、以前以下記事で「tag=1」や「category=hoge」のようなクエリを引き継ぐ方法をメモした。

https://taitan916.info/blog/?p=2897

上記クエリとあわせてページャー情報も引き継ぐ場合は以下のように追記する。

foreach ( $links->model->get_languages_list() as $language ) {
	$tmp_page = (int)get_query_var('paged');
	$tmp_page_query = '';
	if( $tmp_page ){
		$tmp_page_query = '/page/'.$tmp_page;
	}

	$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_page_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

  関連記事

FeedWordPressでアイキャッチ画像も設定する方法

FeedWordPressで更新記事を取得しつつ、アイキャッチ画像も自動で設定し ...

WordPressでサイトが改ざんされた際の対処方法

WordPressで立ち上げたサイトがあり、しばらく放置していたが久しぶりにチェ ...

WordPress4.0の新機能

WordPress4.0への更新が出来るとダッシュボードに書いてた。 互換性で変 ...

WordPressで閲覧者にテーマを変更させるプラグイン

「新規サイトを○○みたいなイメージでWordPressのテーマを見繕って欲しい」 ...

WordPressを4.8.2にして不具合

WordPressを4.8.2にすると記事の新規追加時にウィジウィグの挙動がおか ...

WordPressログイン時のヘッダーメニューを非表示

WordPressログイン時にフロント側のページを見るとヘッダーにメニューが表示 ...

WordPressでカスタムフィールドとCSVファイル投稿

WordPressでカスタムフィールド設定している環境に、CSVファイルアップロ ...

WordPressを外部サーバから投稿する方法

WordPressをダッシュボードからではなく、外部サーバのプログラムから投稿し ...

WordPressでユーザー毎にフラグを持たせる

WordPressでユーザー毎に何らかのフラグを持たせて、フラグによって分岐処理 ...

WordPressの管理画面で記事一覧にアイキャッチ画像を表示

WordPressの管理画面で記事一覧にアイキャッチ画像を表示させる方法のメモ。 ...