Si j'ajoute plus de 5 paramètres à une seule section, l'ordre des paramètres devient bizarre.
Par exemple:
// Link color
$wp_customize->add_setting( 'tonal_'.$themeslug.'_settings[link_color1]', array(
'default' => $themeOptions['link_color1'],
'type' => 'option',
'sanitize_callback' => 'sanitize_hex_color',
'capability' => 'edit_theme_options',
'transport' => 'postMessage'
) );
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'tonal_'.$themeslug.'_settings[link_color1]', array(
'label' => __( 'Link color1', 'tonal' ),
'section' => 'colors',
'settings' => 'tonal_'.$themeslug.'_settings[link_color1]',
'choices' => '#ffffff'
) ) );
D'autres exemples dans une boîte à pâte - pas de délai d'expiration
Les couleurs sont numérotées de 1 à 7, mais dans les paramètres, elles apparaissent dans cet ordre: 2,1,3,4,6,5,7
Quelqu'un a-t-il vécu la même chose?
Ou est-ce que quelqu'un sait même comment résoudre ce problème?
Réponses:
Si vous en avez besoin dans un ordre spécifique, attribuez une valeur de priorité aux contrôles. Sinon, leur commande n'est pas définie et ne peut être garantie.
Si vous ne définissez pas de priorité, le contrôle obtient la priorité par défaut de "10".
Lorsque deux contrôles ont la même priorité, l'ordre résultant n'est pas défini, car c'est ainsi que PHP fonctionne .
la source
Nettoyer
L'itération est beaucoup plus facile pour le débogage, car vous verrez des informations étape par étape:
Commencez donc simplement par un nettoyage et voyez comment il est ajouté.
Tri
Il y a de fortes chances que vous le contourniez avec les mécanismes de tri php par défaut . Jetez simplement un œil à la sortie et voyez ce que vous pouvez faire avec un simple tri de tableau (Astuce: vous pouvez facilement taper cast
(array) $object
et(object) $array
.la source
give a priority value to the controls
, Je pense qu'aucune autre explication n'est nécessaire ;-)