LightningなどベクトルのWordPressテーマでカスタム投稿タイプ情報を多言語に対応する

このレッスンの前に

このレッスンは以下のレッスンを理解している事を前提としています。

プラグイン VK All in One Expansion Unit には、管理画面からカスタム投稿タイプを簡単に追加する「カスタム投稿タイプマネージャー」という機能がありますが、その機能で追加したカスタム投稿タイプは多言語には対応していませんので、多言語サイトを制作する場合などは投稿タイプ名を多言語対応する必要に迫られますので、その場合のカスタマイズ方法を解説します。

Lightning ( 14.18 以降 G3 モード )では表示中のページの投稿タイプ情報は VkHelpers::get_post_type_info() で取得・処理しています。

use VektorInc\VK_Helpers\VkHelpers;
// 投稿タイプ情報を取得
$post_type_info = VkHelpers::get_post_type_info();

返り値は以下のように スラッグ名 / 投稿タイプ名 / 投稿タイプアーカイブのURL が取得できます。

// 帰り値の結果の例
$post_type_info = array(
	'slug' => 'event',
	'name' => 'イベント情報',
	'url'  => 'https://*****/event/',
);

この投稿タイプ情報を書き換えるフィルターフック vk_get_post_type_info が用意してありますので、このフックを利用して、以下のように記述して書き換える事ができます。

add_filter(
	'vk_get_post_type_info',
	function( $post_type_info ) {
		// 言語が英語の場合.
		if ( 'en_US' === get_locale() ) {

			// 投稿タイプスラッグが 'event' の時.
			if ( 'event' === $post_type_info['slug'] ) {
				// 投稿タイプ名を英語表記に変更.
				$post_type_info['name'] = 'Event Information';
				// 英語版のアーカイブページがある場合は変更.
				$post_type_info['url'] = 'https://*****/en/event/';
			}

		}
		// 改変した投稿タイプ情報を返す.
		return $post_type_info;
	}
);

Lightningなら

ビジネスサイトも





ブログも簡単に作れます

有効インストール数6万件以上!Lightning は WordPress公式ディレクトリに登録されているテーマです。いかに最短でサイト制作が出来るかという事に重点を置いて開発しています。デモデータも配布されているので、ビジネスサイトの雛形が数分でセットアップできます。

PAGE TOP