2015-02-26 1 views
0

J'espère que quelqu'un va m'aider à trouver une réponse à cela. Je suis en train de construire un thème enfant de base pour le thème Genesis, & que j'ajoute au Theme Customizer pour permettre une configuration rapide des paramètres de thème de base. Là où je rencontre des problèmes, à chaque fois que j'essaie d'ajouter un contrôle personnalisé, le Customizer se casse. Le site fonctionne toujours, juste les pauses de personnalisation. Mon code est le suivant:Customizer Wordpress casse avec contrôle personnalisé

add_action('customize_register', 'um_register_theme_customizer'); 
function um_register_theme_customizer($wp_customize) { 

// Customizations that work here 

J'ai configuré les paramètres de couleur de base qui fonctionnent tous. Il se brise quand j'ajoute ce paramètre:

$wp_customize->add_setting(
    'um_h6_font_size', 
    array(
     'default'  => '1.2' 
    ) 
); 
$wp_customize->add_control(
     new UM_Customize_Number_Control(
     'um_h6_font_size', 
     array(
      'label'  => __('H6 Font Size (in rem)', 'um'), 
      'section' => 'um_font_size_options', 
      'settings' => 'um_h6_font_size', 
      'type' => 'number' 
     ) 
     ) 
); 

// Classes 
class UM_Customize_Number_Control extends WP_Customize_Control 
{ 
    public $type = 'number'; 

    public function render_content() 
    { 
     ?> 
     <label> 
      <span class="customize-control-title"><?php echo esc_html($this->label); ?></span> 
      <input type="number" size="2" step="1" min="0" value="<?php echo esc_attr( $this->value()); ?>" /> 
     </label> 
     <?php 
    } 
} 
} // Closes the um_register_theme_customizer function 

Si je supprime le contrôle personnalisé alors il fonctionne, par défaut à une entrée de texte (modification du type de texte). Ce que j'essaie de faire, c'est d'en faire un champ numérique.

J'essayais d'utiliser la même méthode pour créer une simple section de texte h6 dans le personnaliseur pour les sous-titres, mais je rencontrais le même problème.

Toute aide pour expliquer pourquoi cela ne fonctionne pas serait grandement appréciée. Je suis sûr qu'il me manque quelque chose de simple.

Répondre

0

La réponse à cette question était simple. Vous ne pouvez pas configurer un contrôle personnalisé à l'intérieur de de la fonction de personnalisation principale. Il doit être ajouté en dehors de cette fonction. c'est-à-dire que j'ai maintenant un fichier php séparé pour les contrôles personnalisés qui est inclus dans mon fichier de fonctions principal.