问题描述

如果我添加超过 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。