概要
get_theme_mods
フィルタは、現在のテーマ固有のプロパティをすべて取得する際に利用されるフィルタです。このフィルタを使用すると、テーマのカスタマイザーで設定されたオプションを取得し、それを変更または追加することができます。主にカスタマイザーで使われるため、以下のような機能を実装する際に役立ちます。
- テーマのカスタマイザー設定を取得する
- デフォルト値の変更
- プラグイン互換性の向上
- 設定をオーバーライドする
- 特定のテーマ機能の拡張
- カスタマイザーからのデータ取得のカスタマイズ
- 環境に依存した設定の適用
- 設定の整理や最適化
構文
add_filter( 'get_theme_mods', 'your_function_name' );
パラメータ
$mods
(配列): 現在のテーマのモディファイア(設定の配列)。
戻り値
- 配列: 修正されたテーマのモディファイアを返します。
関連する関数
使用可能なバージョン
- このフィルタは、WordPress 3.4以降で使用可能です。
コアファイルのパス
wp-includes/theme.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: デフォルト値の設定変更
add_filter( 'get_theme_mods', 'change_default_theme_mods' );
function change_default_theme_mods( $mods ) {
if ( ! isset( $mods['example_setting'] ) ) {
$mods['example_setting'] = 'default_value';
}
return $mods;
}
このコードは、特定のテーマ設定が存在しない場合にデフォルト値を設定しています。
サンプルコード2: カスタマイザのフィールドを追加
add_filter( 'get_theme_mods', 'add_custom_theme_mod' );
function add_custom_theme_mod( $mods ) {
$mods['new_setting'] = 'new_value';
return $mods;
}
このコードは、テーマのモディファイアに新しい設定を追加しています。
サンプルコード3: 設定をログに記録
add_filter( 'get_theme_mods', 'log_theme_mods' );
function log_theme_mods( $mods ) {
error_log( print_r( $mods, true ) );
return $mods;
}
このコードは、現在のテーマの設定をエラーログに記録しています。
サンプルコード4: 特定条件下での設定変更
add_filter( 'get_theme_mods', 'conditional_theme_mod_change' );
function conditional_theme_mod_change( $mods ) {
if ( is_home() ) {
$mods['example_setting'] = 'home_value';
}
return $mods;
}
このコードは、ホームページが表示されている場合に特定の設定を変更します。
サンプルコード5: 既存の設定の上書き
add_filter( 'get_theme_mods', 'override_existing_mod' );
function override_existing_mod( $mods ) {
$mods['existing_setting'] = 'overridden_value';
return $mods;
}
このコードは、既に存在するテーマ設定の値を上書きします。