Если я добавлю более 5 настроек в один раздел, порядок настроек становится странным.
Например:
// 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'
) ) );
Дальнейшие примеры в пастбине - нет срока годности
Цвета пронумерованы от 1 до 7, но в настройках они отображаются в следующем порядке: 2,1,3,4,6,5,7
Кто-нибудь испытывал то же самое?
Или кто-нибудь вообще знает, как это решить?
Ответы:
Если они вам нужны в определенном порядке, присвойте элементам управления значение приоритета. В противном случае их порядок не определен и не может быть гарантирован.
Если вы не определили приоритет, элемент управления получает приоритет по умолчанию «10».
Когда два элемента управления имеют одинаковый приоритет, результирующий порядок не определен, потому что именно так работает PHP .
источник
CleanUp
Итерирование намного проще для отладки, так как вы увидите пошаговую информацию:
Так что просто начните с очистки и посмотрите, как это добавляется.
Сортировка
Вероятность довольно высока, что вы обойдете его с помощью механизмов сортировки php по умолчанию . Просто взгляните на вывод и посмотрите, что вы можете сделать с помощью простой сортировки массивов (подсказка: вы можете легко набрать cast
(array) $object
и(object) $array
.источник
give a priority value to the controls
Я думаю, что дальнейшее объяснение не требуется ;-)