WordPress Customizer: Wie können Sie mehrere aktive callbacke auf einem Steuerelement haben?

Ich habe die folgenden zwei Customizer-Steuerelemente, die ein Kontrollkästchen zum Anzeigen / Verbergen von Inhalten anzeigt. Auf jedes Kontrollkästchen folgt ein active_callback , der die entsprechenden Steuerelemente active_callback / active_callback , wenn das Kontrollkästchen active_callback / active_callback ist.

 // Display About Block Button $wp_customize->add_setting( 'display_about_block_button', array( 'default' => true ) ); $wp_customize->add_control( 'display_about_block_button', array( 'label' => __( 'Display About Button', 'my_theme_name' ), 'type' => 'checkbox', 'section' => 'about', 'active_callback' => 'display_about_block_callback' ) ); function display_about_block_button_callback( $control ) { if ( $control->manager->get_setting( 'display_about_block_button' )->value() == true ) { return true; } else { return false; } } // Display About Block $wp_customize->add_setting( 'display_about_block', array( 'default' => true ) ); $wp_customize->add_control( 'display_about_block', array( 'label' => __( 'Display About Block', 'my_theme_name' ), 'type' => 'checkbox', 'section' => 'about' ) ); function display_about_block_callback( $control ) { if ( $control->manager->get_setting( 'display_about_block' )->value() == true ) { return true; } else { return false; } } 

Sie arbeiten beide alleine, außer das Problem ist, dass der About Block Button unten im About Block . Ich möchte in der Lage sein, den About Block Button alleine zu verstecken, wenn der About Block angezeigt wird, aber auch den About Block Button ausblenden kann, wenn der About Block komplett ausgeblendet ist (ohne beide Kästchen zu aktivieren). Daher benötigt es zwei active_callback wie active_callback :

 // About Block Button Text $wp_customize->add_setting( 'about_block_button_text', array( 'default' => __( 'Read More', 'my_theme_name' ) ) ); $wp_customize->add_control( 'about_block_button_text', array( 'label' => __( 'About Button Text', 'my_theme_name' ), 'type' => 'text', 'section' => 'about', 'active_callback' => 'display_about_block_button_callback', 'active_callback' => 'display_about_block_callback' ) ); 

Leider akzeptiert es nicht beide active_callback . Wie kann ich zwei (oder möglicherweise mehr) aktive callbacke auf einem Steuerelement haben?

Solutions Collecting From Web of "WordPress Customizer: Wie können Sie mehrere aktive callbacke auf einem Steuerelement haben?"

Sie können eine dritte aktive Callback-function erstellen, die nur auf die beiden vorhandenen verweist, zum Beispiel über eine anonyme function (PHP≥5.3):

 // About Block Button Text $wp_customize->add_setting( 'about_block_button_text', array( 'default' => __( 'Read More', 'my_theme_name' ) ) ); $wp_customize->add_control( 'about_block_button_text', array( 'label' => __( 'About Button Text', 'my_theme_name' ), 'type' => 'text', 'section' => 'about', 'active_callback' => function( $control ) { return ( display_about_block_button_callback( $control ) && display_about_block_callback( $control ) ); }, ) );