グローバル変数の追加

PHPワードプレス関数ファイルアドバンスドカスタムフィールド変数

どのテンプレートからでも呼び出せる変数を使うため、今まではデータベースに「option」として書き込んで呼び出していましたが、変数を1つ追加するたびに追加するコードが猛烈に長くて複雑。

 

ACF Proの「オプション」を使うと、簡単かつあらゆる形式を使えるので便利ですが、過度のプラグイン依存も気がすすまない。

グローバル変数を使えば(追加すれば)ある程度カバー出来ますが、乱用すると「良くない」「キケン!」という記事が多くてこわいですが、実際何をすると何が起きるかが分からない。

自分でトラブルに直面しないと、ね。

ということで追加の仕方。超簡単。

functions.php

if ( !function_exists( 'my_theme_var_setup' ) ){
	function my_theme_var_setup(){
		global $my_theme_var_title;
		$my_theme_var_title = 'どこでも呼び出せる変数';
	}
	add_action( 'after_setup_theme', 'my_theme_var_setup' );
}

たくさん使うことになるので、「関数が既に存在していたら何もしない 」を追加。

既に乱用前提です、、、

 

参考にした記事では「 add_action」の引数にカンマが付いていなくてエラーが起き、気が付かなくてちょっと焦った。

PHP5あたりだとこれでもエラーは起きない。ダブルコーテーションで括ってあっても同様。

3年くらい以上前のサンプルではよくあることなので、まずカンマを疑おう。

呼び出し

global $my_theme_var_title;
echo '<h1>呼び出されたグローバル変数は[' . $my_theme_var_title . ']です。</h1>';

 

functionsに「$my_theme_var_title = ‘○○○’;」とだけ書いても関数は追加できますが、もちろんグローバル変数じゃないので、「get_template_part()」で呼び出されたテンプレートからは呼び出せません。

 

数字、真偽、短いテキスト、url、くらいならこれで。