Jika saya menambahkan lebih dari 5 Pengaturan ke satu bagian, urutan pengaturan menjadi aneh.
Sebagai contoh:
// 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'
) ) );
Contoh lebih lanjut di masa lalu - tidak ada waktu kedaluwarsa
Warnanya dinomori dari 1 hingga 7, tetapi dalam pengaturan mereka muncul dalam urutan itu: 2,1,3,4,6,5,7
Adakah yang mengalami hal yang sama?
Atau adakah yang tahu cara mengatasi ini?
Jawaban:
Jika Anda membutuhkannya dalam urutan tertentu, maka berikan nilai prioritas untuk kontrol. Kalau tidak, pesanan mereka tidak ditentukan dan tidak dapat dijamin.
Jika Anda tidak menetapkan prioritas, maka kontrol mendapatkan prioritas default "10".
Ketika dua kontrol memiliki prioritas yang sama, maka urutan yang dihasilkan tidak terdefinisi, karena itulah cara kerja PHP .
sumber
Membersihkan
Iterasi jauh lebih mudah untuk debugging, karena Anda akan melihat informasi langkah demi langkah:
Jadi cukup mulai dengan pembersihan dan lihat bagaimana itu ditambahkan.
Penyortiran
Peluangnya cukup tinggi, bahwa Anda akan mengatasinya dengan mekanisme penyortiran php default . Lihatlah output dan kemudian lihat apa yang dapat Anda lakukan dengan pengurutan array sederhana (Petunjuk: Anda dapat dengan mudah mengetikkan cast
(array) $object
dan(object) $array
.sumber
give a priority value to the controls
, Saya pikir tidak ada penjelasan lebih lanjut diperlukan ;-)