ワードプレスのget_theme_modsフィルタの使用方法・解説

概要

get_theme_modsフィルタは、現在のテーマ固有のプロパティをすべて取得する際に利用されるフィルタです。このフィルタを使用すると、テーマのカスタマイザーで設定されたオプションを取得し、それを変更または追加することができます。主にカスタマイザーで使われるため、以下のような機能を実装する際に役立ちます。

  1. テーマのカスタマイザー設定を取得する
  2. デフォルト値の変更
  3. プラグイン互換性の向上
  4. 設定をオーバーライドする
  5. 特定のテーマ機能の拡張
  6. カスタマイザーからのデータ取得のカスタマイズ
  7. 環境に依存した設定の適用
  8. 設定の整理や最適化

構文

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;
}

このコードは、既に存在するテーマ設定の値を上書きします。

この関数について質問する


上の計算式の答えを入力してください