get_theme_mod funktioniert nicht richtig

Der Code gibt alles aus (Style-Tags, Div-classn, Klammern usw.), mit Ausnahme der tatsächlichen Farbe, die ich auswähle. Wie bekomme ich die tatsächliche Ausgabe (primary_color) angezeigt?

Registrieren der benutzerdefinierten Farbauswahl:

// WP THEME CUSTOMIZER: COLORS $colors = array(); $colors[] = array( 'slug'=>'primary_color', 'default' => '#88C34B', 'label' => __('Primary Color', 'Ari') ); 

Aufruf der Farbe:

 //// WP THEME CUSTOMIZER: GENERATE CSS function mytheme_customize_css() { ?>  html, body, .container { color:; }  <?php } add_action( 'wp_head', 'mytheme_customize_css'); 

Der vollständige Code kann hier gefunden werden:

 //// WP THEME CUSTOMIZER: GENERATE CSS function mytheme_customize_css() { ?>  html, body, .container { color:; }  'primary_color', 'default' => '#88C34B', 'label' => __('Primary Color', 'Ari') ); $colors[] = array( 'slug'=>'secondary_color', 'default' => '#333333', 'label' => __('Secondary Color', 'Ari') ); $colors[] = array( 'slug'=>'heading_bg_color', 'default' => '#333333', 'label' => __('Heading Background', 'Ari') ); $colors[] = array( 'slug'=>'heading_font_color', 'default' => '#333333', 'label' => __('Heading Font', 'Ari') ); $colors[] = array( 'slug'=>'heading_links_color', 'default' => '#333333', 'label' => __('Heading Links', 'Ari') ); $colors[] = array( 'slug'=>'heading_links_hover_color', 'default' => '#333333', 'label' => __('Heading Links Hover', 'Ari') ); $colors[] = array( 'slug'=>'headings_color', 'default' => '#333333', 'label' => __('Headings Color', 'Ari') ); $colors[] = array( 'slug'=>'background_color', 'default' => '#FFFFFF', 'label' => __('Background Color', 'Ari') ); foreach( $colors as $color ) { // SETTINGS $wp_customize->add_setting( $color['slug'], array( 'default' => $color['default'], 'type' => 'option', 'capability' => 'edit_theme_options' ) ); // CONTROLS $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, $color['slug'], array('label' => $color['label'], 'section' => 'colors', 'settings' => $color['slug']) ) ); } // WP THEME CUSTOMIZER: LAST LINE } add_action( 'customize_register', 'wptuts_theme_customizer', 11 ); 

Solutions Collecting From Web of "get_theme_mod funktioniert nicht richtig"

Ich denke, das Problem ist einfach diese Linie:

 'type' => 'option', 

Sie sollten es entfernen, da der Standardwert ist:

 'type' => 'theme_mod', 

da Sie get_theme_mod() verwenden get_theme_mod() .

Sie sollten auch berücksichtigen:

  • Voranstellen dieser Farbeinstellungen Slugs, um sie einzigartiger zu machen.
  • Verwenden Sie zum Beispiel: 'sanitize_callback' => 'sanitize_hex_color', in Ihren Einstellungen für sanitazion.

ps: Es fehlt ein Stück in deinem Code-Snippet.

Edit by Otto: Die obige Antwort ist richtig. Zusätzlich:

  • Wenn du get_theme_mod('primary_color') machst, solltest du dort auch den Standardwert angeben: get_theme_mod('primary_color', '#88C34B') . Dadurch wird verhindert, dass ein beschädigtes CSS ausgegeben wird, wenn der Benutzer noch keine Farbe im Customizer ausgewählt hat.

  • Das Vorfixieren der Nacktschnecken ist für Theme-Mod-Einstellungen eigentlich nicht nötig, da sie in jedem Fall eindeutig zum Thema gespeichert sind. Wenn Sie Optionen und nicht Theme-Mods verwenden, wäre eine Präfixierung wünschenswert.