Wenn ich einem einzelnen Abschnitt mehr als 5 Einstellungen hinzufüge, wird die Reihenfolge der Einstellungen merkwürdig.
Beispielsweise:
// 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'
) ) );
Weitere Beispiele in einem Pastebin - keine Verfallszeit
Die Farben sind von 1 bis 7 nummeriert, aber in den Einstellungen erscheinen sie in der folgenden Reihenfolge: 2,1,3,4,6,5,7
Hat jemand das gleiche erlebt?
Oder weiß überhaupt jemand, wie man das löst?
Antworten:
Wenn Sie sie in einer bestimmten Reihenfolge benötigen, geben Sie den Steuerelementen einen Prioritätswert. Andernfalls ist ihre Reihenfolge nicht definiert und kann nicht garantiert werden.
Wenn Sie keine Priorität definieren, erhält das Steuerelement die Standardpriorität "10".
Wenn zwei Steuerelemente dieselbe Priorität haben, ist die resultierende Reihenfolge undefiniert, da PHP so funktioniert .
quelle
Aufräumen
Das Iterieren ist für das Debuggen viel einfacher, da Sie schrittweise Informationen sehen:
Beginnen Sie also einfach mit einer Bereinigung und sehen Sie, wie sie hinzugefügt wird.
Sortierung
Die Chance ist ziemlich hoch, dass Sie es mit Standard-PHP-Sortiermechanismen umgehen . Schauen Sie sich einfach die Ausgabe an und sehen Sie, was Sie mit der einfachen Array-Sortierung tun können (Hinweis: Sie können cast
(array) $object
und einfach eingeben(object) $array
.quelle
give a priority value to the controls
Ich denke, es ist keine weitere Erklärung erforderlich ;-)