概要
wp_set_template_globals
関数は、現在のテーマに関連するグローバル変数を設定するために使用されます。この関数は、WordPressテンプレートの処理中に、テーマが必要とするさまざまな変数を設定するのに役立ちます。
この関数は、以下のような機能を実装する際によく使われます。
- テーマの設定情報を初期化する。
- カスタム投稿タイプを表示するための設定を行う。
- サイドバーやウィジェットの設定を管理する。
- ページテンプレートでのSEO設定を制御する。
- グローバル変数を使って条件判定を行う。
- 特定のリクエストに基づくデータをフィルタリングする。
- テーマ間の一貫性を持たせるためのデータを準備する。
- ユーザーのプロファイルに関連するデータを扱う。
構文
wp_set_template_globals( $template );
パラメータ
$template
(string): テンプレート名。設定するグローバル変数に関連するテンプレートの名前。
戻り値
なし。
関連する関数
使用可能なバージョン
wp_set_template_globals
関数は、WordPress 4.4 以降のバージョンで利用可能です。
発見場所
この関数は、次のコアファイルに含まれています。
wp-includes/template.php
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | 〇 |
after_setup_theme | 〇 |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | 〇 |
pre_get_posts | 〇 |
wp | |
template_redirect | |
get_header | |
wp_head | 〇 |
サンプルコード
サンプル1: テンプレートのグローバル変数を設定
function set_template_globals_demo() {
$template = 'my-template.php';
wp_set_template_globals( $template );
}
add_action( 'after_setup_theme', 'set_template_globals_demo' );
このサンプルコードは、after_setup_theme
アクションフックにバインドされており、my-template.php
というテンプレート名に関連するグローバル変数を設定します。
サンプル2: カスタム投稿タイプの設定
function custom_post_type_setup() {
register_post_type( 'custom', [
'public' => true,
'label' => 'Custom Posts'
]);
wp_set_template_globals( 'custom' );
}
add_action( 'init', 'custom_post_type_setup' );
このコードは、init
アクションフックでカスタム投稿タイプを登録し、そのカスタムタイプに関連するグローバル変数を設定します。
サンプル3: テンプレートパーツの読み込み時にグローバル変数設定
function load_template_part() {
wp_set_template_globals( 'header' );
get_template_part( 'header' );
}
add_action( 'get_header', 'load_template_part' );
このサンプルは、get_header
アクションフックでヘッダー部分を読み込む際に、グローバル変数を設定するものです。
サンプル4: SEO設定用のカスタムグローバル変数設定
function seo_custom_globals() {
if ( is_single() ) {
wp_set_template_globals( 'single' );
}
}
add_action( 'wp', 'seo_custom_globals' );
このコードは、wp
アクションフックで、シングル投稿ページに入った時に SEO に必要なグローバル変数を設定します。
サンプル5: サイト全体設定用のグローバル変数
function global_site_settings() {
wp_set_template_globals( 'site-settings' );
}
add_action( 'wp_head', 'global_site_settings' );
このサンプルは、wp_head
アクションフックで、サイト全体の設定に関連するグローバル変数を設定します。