Si agrego más de 5 configuraciones a una sola sección, el orden de las configuraciones se vuelve extraño.
Por ejemplo:
// 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'
) ) );
Otros ejemplos en un pastebin: sin tiempo de caducidad
Los colores están numerados del 1 al 7, pero en la configuración aparecen en ese orden: 2,1,3,4,6,5,7
¿Alguien ha experimentado lo mismo?
¿O alguien sabe cómo resolver esto?
Respuestas:
Si los necesita en un orden específico, asigne un valor de prioridad a los controles. De lo contrario, su orden no está definida y no se puede garantizar.
Si no define una prioridad, el control obtiene la prioridad predeterminada de "10".
Cuando dos controles tienen la misma prioridad, el orden resultante no está definido, porque así es como funciona PHP .
fuente
Limpiar
La iteración es mucho más fácil para la depuración, ya que verá información paso a paso:
Así que simplemente comience con una limpieza y vea cómo se agrega.
Clasificación
La posibilidad es bastante alta, que lo evitará con los mecanismos de clasificación de php predeterminados . Solo eche un vistazo a la salida y luego vea lo que puede hacer con una ordenación de matriz simple (Sugerencia: puede escribir fácilmente cast
(array) $object
y(object) $array
.fuente
give a priority value to the controls
, Creo que no se necesita más explicación ;-)