Jeśli dodam więcej niż 5 ustawień do jednej sekcji, kolejność ustawień staje się dziwna.
Na przykład:
// 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'
) ) );
Dalsze przykłady w koszyku - bez daty ważności
Kolory są ponumerowane od 1 do 7, ale w ustawieniach pojawiają się w następującej kolejności: 2,1,3,4,6,5,7
Czy ktoś doświadczył tego samego?
Czy ktoś w ogóle wie, jak to rozwiązać?
Odpowiedzi:
Jeśli potrzebujesz ich w określonej kolejności, podaj priorytet wartości kontrolkom. W przeciwnym razie ich kolejność nie jest zdefiniowana i nie może być zagwarantowana.
Jeśli nie zdefiniujesz priorytetu, wówczas kontrolka otrzymuje domyślny priorytet „10”.
Gdy dwa formanty mają taki sam priorytet, wynikowa kolejność jest niezdefiniowana, ponieważ tak działa PHP .
źródło
Sprzątać
Iterowanie jest znacznie łatwiejsze do debugowania, ponieważ zobaczysz informacje krok po kroku:
Po prostu zacznij od posprzątania i zobacz, jak to się doda.
Sortowanie
Szanse są dość duże, że obejdziesz to dzięki domyślnym mechanizmom sortowania php . Wystarczy spojrzeć na dane wyjściowe i przekonać się, co można zrobić za pomocą prostego sortowania tablic (Wskazówka: można łatwo wpisać rzut
(array) $object
i(object) $array
.źródło
give a priority value to the controls
, Myślę, że dalsze wyjaśnienia nie są potrzebne ;-)