web-dev-qa-db-ja.com

テーマカスタマイザのラジオボタンのデフォルト設定値の設定についてヘルプが必要

ラジオボタンがテーマ設定の値をどのように保存するかを理解するのに助けが必要です。

私のテーマでは、テーマカスタマイザにラジオボタンを追加しました。これまでのところ、彼らは素晴らしい仕事をしています。一つ問題がありますが。それらのデフォルト設定を設定できないようです。そのため、テーマを新しいインストールにインストールした場合、または他の誰かがインストールした場合。ラジオボタンの目的が何も表示されません。私はラジオボタン自体のデフォルト値について話しているのではなく、デフォルトのテーマカスタマイザ設定値について話している。これがラジオボタンの作成方法です。

        /** Header button options */

    $wp_customize->add_setting(
    'header_btn_options',
    array(
        'default' => 'duplicatebtn',
    ) );

$wp_customize->add_control(
    'header_btn_options',
    array(
        'type' => 'radio',
        'priority'   => 30,
        'label' => 'Header buttons type',
        'section' => 'mytheme_header',
        'choices' => array(
        'duplicatebtn' => 'Use hero settings',
        'createcustom' => 'Use custom settings(modify below)',
        'hidebtn' => 'Do not display button',
         ),
    )
);  

これがテーマ設定のデフォルトを設定する方法です。これを行うのは、新規インストールが完了したときにテーマが問題ないように見えるようにするためです。

function mytheme_get_theme_mods() {
    $defaults = array(
        'mytheme_header_btn_options'     => 'duplicatebtn'
);

    return $defaults;

これが私の混乱です。デフォルトをアレイからの選択に設定しようとしても、機能しません。テーマカスタマイザのラジオボタンから新しい値を保存すると、そのように機能しますが。したがって、「duplicatebtn」だけではなく、いくつかの価値があることは明らかです。または、おそらくそれがあり、私はそれを間違っています。誰か私がこれを理解するのを手伝ってくれませんか?

6
user1632018

長い質問ですが、一部の開発者がこの回答をしたい場合があります。

例:私は自分の家のレイアウトGridListの2つの選択肢があり、Gridがデフォルトで選択されていることを好みます。このadd_settingのように'default' => 'grid' simpleにデフォルト値を追加する必要があります。

$wp_customize->add_setting('yourtheme_home_layout_style', 
    array(
        'sanitize_callback' => 'sanitize_text_field', 
        'default' => 'grid'
    ));
    $wp_customize->add_control( 'yourtheme_home_layout_style', array(
        'section'               => 'yourtheme_home_layout_section',
        'label'                 => __( 'Layout Style', 'textdomain' ),
        'type'                  => 'radio',
        'priority'              => 1,
        'choices'               => array(
            'grid'                  => __('Grid', 'textdomain'),
            'list'                  => __('List', 'textdomain'),
        ),
    ));
1
Sophy

動作しない場合wordpressカスタマイザのデフォルト値 add_setting(); このように使えます

 
 <?php echo esc_attr(get_theme_mod( 'header_btn_options'、 'duplicatebtn');?> 
 

ここで第1パラメータは IDの設定 そして2番目のパラメータは デフォルト値

望む!それはあなたのために役立ちます。

0
user112253