Comment pourrais-je ajouter une description à $wp_customize->add_control
? J'ai constaté que j'avais vraiment besoin d'inclure une brève description sur certaines des commandes, mais cela ne semble pas possible.
J'ai remarqué que vous pouvez ajouter une description à $wp_customize->add_section
mais ce n'est qu'une info-bulle.
C'est idéalement ce que j'aimerais faire, mais je ne sais pas comment le sortir et si cela est possible:
$wp_customize->add_control( 'theme_options[some_option_name]', array(
'label' => 'This Is Some Option',
'section' => 'theme_name_section',
'type' => 'text',
'description' => 'Wish this existed', // this isn't possible
));
Voici une façon de le faire en étendant le contrôle que vous souhaitez utiliser.
Vous trouverez ci-dessous un exemple dans lequel nous étendons le contrôle de texte et ajoutons une description supplémentaire, comme celle présentée ici sur la capture d'écran:
function mytheme_customizer( $wp_customize ) {
class Custom_Text_Control extends WP_Customize_Control {
public $type = 'customtext';
public $extra = ''; // we add this for the extra description
public function render_content() {
?>
<label>
<span><?php echo esc_html( $this->extra ); ?></span>
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
<input type="text" value="<?php echo esc_attr( $this->value() ); ?>" <?php $this->link(); ?> />
</label>
<?php
}
}
$wp_customize->add_section('customtext_section', array(
'title'=>__('My Custom Text','mytheme'),
)
);
$wp_customize->add_setting('mytheme_options[customtext]', array(
'default' => '',
'type' => 'customtext_control',
'capability' => 'edit_theme_options',
'transport' => 'refresh',
)
);
$wp_customize->add_control( new Custom_Text_Control( $wp_customize, 'customtext_control', array(
'label' => 'My custom Text Setting',
'section' => 'customtext_section',
'settings' => 'mytheme_options[customtext]',
'extra' =>'Here is my extra description text ...'
) )
);
}
add_action( 'customize_register', 'mytheme_customizer' ,10,1);
Il est utile de consulter la source de la classe WP_Customize_Control
:
https://github.com/WordPress/WordPress/blob/master/wp-includes/class-wp-customize-control.php
J'espère que cela t'aides.
Les contrôles personnalisés ne sont plus nécessaires pour quiconque rencontre ce problème après la publication de WordPress 4.0. Cette fonctionnalité est intégrée dans WordPress: https://core.trac.wordpress.org/ticket/27981 .
L'argument description ajoute une description sous le contrôle. Si vous souhaitez ajouter quelque chose au-dessus du titre du contrôle, comme un en-tête supplémentaire ou quelque chose, vous pouvez utiliser l'action customize_render_control_{id}
. Par exemple, si vous souhaitez ajouter un bouton au-dessus d'un contrôle avec l'ID hi_shawn
, vous pouvez le faire:
add_action( 'customize_render_control_hi_shawn', function(){
printf( '<a href="%s">%s</a>', 'http://hiroy.club', __( 'Hi Shawn', 'text-domain' ) );
});