ブルーシュ

IT技術の勉強記録

ホーム > Tips > WordPress

ブロックテーマでWPGlobusの言語切り替えスイッチショートコードを自作する

ブロックテーマとWPGlobusの相性が悪い

多言語化プラグイン「WPGlobus」を導入してみました。バージョンは2.10.9です。
 
WordPressのプラグインページ WPGlobus – Multilingual Everything!
プラグインの公式ページ WPGlobus: Multilingual WordPress plugin
 
1つの投稿に多言語の記事をまとめることができるので便利なプラグインですが、ブロックテーマとの相性が悪い気がします。公式ページを見るとブロックテーマに対応しているようなことが書いてあるけど、言語切り替えスイッチを表示させることができない!
WPGlobusは言語切り替えスイッチをナビメニューやウィジェット機能を利用して設置していることが原因のようで、ブロックテーマのテンプレートエディタからは追加できませんでした。(※ちゃんと探せばあるかもしれない)
ナビメニューやウィジェット機能を追加するとテンプレートエディタの表示が崩れたので別の方法で対処します。

対処方法

プラグインフォルダにあったサンプルコードlanguage-switcher-sample.phpを参考に、ショートコードを自作します。

設定画面

「Language Selector Menu」は「none」、「”All Pages” menus Language selector」はチェックを外して大丈夫。

追加するコード

下記のコードをテーマフォルダのfunctions.phpに追加してください。

function wpglobus_language_switcher(){

	if (!class_exists( 'WPGlobus' )) {
		return false;
	}

	$html = "";

	foreach( WPGlobus::Config()->enabled_languages as $language ) {

		if($language == WPGlobus::Config()->language){
			$class = "class='current'";
		} else{
			$class = "";
		}

		$link = WPGlobus_Utils::localize_current_url( $language );
		$str = WPGlobus::Config()->en_language_name[$language];

		$html .= "<a {$class} href='{$link}'>{$str}</a>";
	}

	$html = "<div class='wpglobus-language-switcher'>{$html}</div>";

	return $html;
}
add_shortcode('lang_switch','wpglobus_language_switcher');

コード解説

設定画面の「Enabled Languages」の言語を取得します。
すべて英語表記です。その土地の文字で表示したい場合は$stren_language_namelanguage_nameに変更してください。
 
親ブロックにはwpglobus-language-switcherクラス、現在表示されている言語にはcurrentクラスを付与しています。
 
その他の機能はこちらの公式の解説から→Class WPGlobus_Config
”Properties summary”を参照してください。

ショートコードで表示させる

テンプレートエディタや各ページのエディタにて、言語切り替えスイッチを表示させたいところに、ショートコード[lang_switch]を追加します。ショートコードブロックは「ウィジェット」のところにあります。

cssで見た目を整えて、出来上がり!

ブロックテーマでWPGlobusの言語切り替えスイッチショートコードを自作する #WordPress #ウェブデザイン #ウェブ制作 #WEBデザイン #WEB制作

作者の似顔絵

プログラミング歴19年🌈調べたことをブログにまとめていきます。
記事の感想・質問・間違い指摘などはツイッター ( @blooshcompany ) へお願いします。

秋田のウェブ活用をサポート

ホームページを自作してコスト削減!秋田の事業者は無料で利用できます。
ネットショップ・WordPress・SEO対策などさまざまなお悩みをサポートします。

その他、フロントエンド案件のご依頼はインフォメーション

秋田市 レンタル着物 笹パンダ堂のバナーリンク