問題描述

如果我新增超過 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'
) ) );

Further examples in a pastebin – no expiration time

顏色的編號從 1 到 7,但在設定中它們按照順序顯示:2,1,3,4,6,5,7

有人經歷過同樣的事嗎?

還是有人甚至知道如何解決這個問題?

最佳解決方案

如果您按照特定的順序需要它們,則為控制元件提供優先順序值。否則,他們的訂單沒有定義,不能保證。

如果未定義優先順序,則控制元件將獲得”10″ 的預設優先順序。

當兩個控制元件具有相同的優先順序時,則生成的順序是未定義的,因為這是 how PHP works

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。