Se eu adicionar mais de 5 configurações a uma única seção, a ordem das configurações ficará estranha.
Por exemplo:
// 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'
) ) );
Outros exemplos em um pastebin - sem tempo de expiração
As cores são numeradas de 1 a 7, mas nas configurações elas aparecem nessa ordem: 2,1,3,4,6,5,7
Alguém já experimentou o mesmo?
Ou alguém sabe como resolver isso?
Respostas:
Se você precisar deles em uma ordem específica, atribua um valor de prioridade aos controles. Caso contrário, seu pedido não será definido e não poderá ser garantido.
Se você não definir uma prioridade, o controle obterá a prioridade padrão "10".
Quando dois controles têm a mesma prioridade, a ordem resultante é indefinida, porque é assim que o PHP funciona .
fonte
Limpar
A iteração é muito mais fácil para a depuração, pois você verá informações passo a passo:
Então, basta começar com uma limpeza e ver como ela é adicionada.
Ordenação
A chance é bastante alta, de que você contornará isso com mecanismos padrão de classificação de php . Basta dar uma olhada na saída e ver o que você pode fazer com a simples classificação de arrays (Dica: você pode facilmente digitar cast
(array) $object
e(object) $array
.fonte
give a priority value to the controls
, Acho que nenhuma explicação é necessária ;-)