my-snow-monkey.php

my-snow-monkey

my-snow-monkey.php

shortcode.php

// ------------------------------------------------
// ショートコード追加
// ------------------------------------------------
add_shortcode(
	'test0125',
	function() {

		// 出力のタイミングを制御する
		// →本文コンテンツ内のショートコードブロックの設置箇所に正しく出力される
		ob_start();
		require (__DIR__.'/shortcode.php');
		$code = ob_get_clean();
		return $code;
	}
);

参考
https://hazimaru.jp/2930/

shortcode.php

  • 挿入したいHTMLを記述したphpファイルを作成
  • my-snow-monkeyディレクトリ内に作成
<style>
  .sample-text {
    color: red;
    font-size: 6rem;
  }
</style>
<p class="sample-text">ショートコードで<br>挿入したいhtmlを記載</p>
<p>※ショートコードで挿入しています</p>

get_template_part()では変数を渡せない

ショートコードで表示する内容を読み込む際の関数についての注意です

get_template_part() はHTMLのテンプレートをパーツとして再利用するためのもので、ロジックを注入する用途では使用しません!

読み込み元ファイルAで読み込むファイルBがあるとすると

Aで変数$aを定義した場合、Bで使用するには、 変数のスコープを考慮する必要があります。

なぜなら基本的にBから$aにはアクセスできない

ファイルA スコープA $a = “値”; get_template_part() include(locate_template()) ファイルB スコープB get_template_partの場合: $a は未定義 includeの場合: $a にアクセス可能

get_template_part()

WordPressの組み込みの関数で、テーマファイルの部分的なテンプレートファイルを読み込むために使用します。

読み込むとは、、「関数を呼び出した位置に指定したファイルの内容を展開する」ということですね

変数スコープを渡したいなら、include locate_template()が無難です