web-dev-qa-db-ja.com

Theme_modの出力にwp_customizerのデフォルト値を使用しますか?

テーマカスタマイザを使わずにecho get_theme_mod ();を使用してwp_customizeテキストフィールドタイプのデフォルト値を出力し、何かを変更して保存する方法はありますか

私はもう一つの stackexchangeの質問を読みましたget_theme_modはテーマカスタマイザで保存した後にのみ何かを表示します。 wp_customize設定のデフォルト値を出力できないのは、デフォルト値を使用する目的に反するようです。

それでは、ここで質問に戻ります。フロントエンドにwp_customize設定のデフォルト値を自動的に表示する方法はありますか?

4

残念ながら、すべてのカスタマイズコントロールはcustomize_registerにフックされているので、初めてテーマをカスタマイズするときにのみ機能します。

get_theme_mod() は「デフォルト」の値に2番目の引数を取ります - はい、それはあなたのコード内のデータの2つのインスタンスを意味しますが、それは半解決策です。

もっと多くの _ dry _ /アプローチはグローバルとヘルパー関数のカップリングだろうと思います:

$my_theme_defaults = array(
    'foo' => 'bar',
    'baz' => 'boo',
);

function my_theme_customize( $wp_customize ) {
    global $my_theme_defaults;

    $wp_customize->add_setting(
        'foo',
        array(
            'default' => $my_theme_defaults['foo'],
        )
    );  
}

function my_theme_mod( $name ) {
    global $my_theme_defaults;

    echo get_theme_mod( $name, $my_theme_defaults[ $name ] );
}
7
TheDeadMedic

実際にはデフォルト値を出力することができます。正しい方法はこのようにあなたのモッズのデフォルトを設定することです:

echo get_theme_mod( 'MOD_ID', 'YOUR DEFAULT OUTPUT' );
3
WPExplorer