2017-10-30 5 views
1

私のテーマでは、以下のコードスニペットのテーマカスタマイズAPIを2つ使用して設定しました。WordPress:カスタマイザでアクティブなコールバックを使用する方法

checkboxが真、checkboxが偽、radioが非表示のときにradioオプションを表示したいとします。私はactive_callbackを使用しようとしましたが、動作しません。では、どのようにしてこの機能を達成できますか?

ありがとうございます!

// Related Post. 
 
    $wp_customize->add_setting('_related_post', array(
 
     'capability' => 'edit_theme_options', 
 
     'default' => 0, 
 
     'transport' => 'postMessage', 
 
    )); 
 

 
    $wp_customize->add_control('_related_post', array(
 
     'settings'  => '_related_post', 
 
     'label'   => __('Display Related Posts', 'typenow'), 
 
     'section'  => '_theme_options', 
 
     'type'   => 'checkbox', 
 
     'priority'  => 30, 
 
    )); 
 
    
 
    // Related Post Num. 
 
    
 
     $wp_customize->add_setting('_related_post_num', array(
 
     'capability' => 'edit_theme_options', 
 
     'default' => '2', 
 
     'transport' => 'postMessage', 
 
    )); 
 

 
    $wp_customize->add_control('_related_post_num', array(
 
     'settings'  => '_related_post_num', 
 
     'label'   => __('Related Posts Number', 'typenow'), 
 
     'section'  => '_theme_options', 
 
     'type'   => 'radio', 
 
     'priority'  => 35, 
 
     'choices'  => array (
 
          '2' => __('Two posts', 'typenow'), 
 
          '4' => __('Four posts', 'typenow'), 
 
          ), 
 
    ));

+0

私はあなたが間違ってこの考えていると信じています。 https://codex.wordpress.org/Class_Reference/WP_Customize_Manager/add_sectionによると、 'active_callback'パラメータはこれを行います:'このオプションの引数は、現在表示されているページに基づいてセクションを表示または非表示にすることができます。例: 'active_callback' => 'is_front_page'。入力選択に基づいてフィールドを表示または非表示にするには、JS/jQueryを使用する必要があります。 – AndyWarren

+1

私は解決策を見つけましたが、まだありがとう! '' active_callback '=> function(){return get_theme_mod(' _related_post '、false)} ' – 85Ryan

答えて

0

ソリューション:

$wp_customize->add_control('_related_post_num', array(
    'settings'  => '_related_post_num', 
    'label'   => __('Related Posts Number', 'typenow'), 
    'section'  => '_theme_options', 
    'type'   => 'radio', 
    'priority'  => 35, 
    'choices'  => array (
         '2' => __('Two posts', 'typenow'), 
         '4' => __('Four posts', 'typenow'), 
         ), 
    'active_callback' => function(){ 
     return get_theme_mod('_related_post', false); 
    }, 
)); 
関連する問題