WordPress Customizer nicht Standardwert bei der Erstinstallation festlegen?

Ich habe Probleme, die Standardwerte in WordPress Customizer zu erhalten, um bei der Erstinstallation in der database zu speichern, ohne dass der Benutzer den Customizer zuerst speichern muss. Ich habe die Lösung aus diesem Thread ohne Glück versucht:

Verwenden Sie den Standardwert von wp_customizer in theme_mod output?

Customizer section/setting/control //Social Icons Section $wp_customize->add_section( 'socialsection', array( 'title' => __( 'Social Media' ), 'priority' => 4, 'capability' => 'edit_theme_options', ) ); //Settings & Controls For Social Media $wp_customize->add_setting( 'facebooklink_edit', array( 'default' => '#', 'sanitize_callback' => 'esc_attr', 'transport' => 'refresh', ) ); $wp_customize->add_control('facebooklink_edit', array( 'label' => __( 'Facebook Link', 'spiffing' ), 'section' => 'socialsection', ) ); 

Ausgabe am Frontend:

 <a href="https://wordpress.stackexchange.com/questions/248570/wordpress-customizer-not-setting-default-value-upon-initial-install/"> 

CSS-Manipulation basierend auf Benutzeraktion in customzier:

  ?>   #fb-footer-bg { display: none; }   <?php 

Von oben gesehen, können Sie sehen, dass dieser Mod den Wert standardmäßig auf ‘#’ setzt, und wenn er dann feststellt, dass kein ‘#’ vorhanden ist, fügt ‘display: none’ zu dieser ID hinzu. Sollte einfach genug sein. Es sieht jedoch so aus, als ob die if-statement erkennt, dass ihre Bedingung erfüllt ist, in diesem Fall ist sie leer und wendet ‘display: none’ an. Aber wie Sie in den beiden Standardbereichen von Frontend und Customzier sehen können, habe ich den Standardwert auf ‘#’ gesetzt. Es schreibt es sogar in den Platzhalterbereich im Customzier, nur nicht in die database.

Es funktioniert, wenn der Benutzer NACH der Erstinstallation in den Customizer geht und auf “Speichern” klickt. Vielleicht einen Wert in die database einleiten, der dann am Frontend gelesen und angezeigt wird.

Ich habe das mit Links usw. zu arbeiten, aber dieser Mod ist anders in dem Sinne, dass er ein Div durch Hinzufügen eines ‘display: none’ manipuliert.

Irgendwelche Ideen geschätzt.

Solutions Collecting From Web of "WordPress Customizer nicht Standardwert bei der Erstinstallation festlegen?"

Ich habe es geschafft, dies zu beheben, indem ich den Operator für die ‘if’ statement ändere:

Original:

 ?>  < ?php 

Aktualisiert:

 ?>  < ?php 

Das Ändern von 'ist gleich' zu 'ist identisch' scheint das zu beheben.

Ich denke, du solltest etwas wie set_theme_mod . Dies speichert den Wert in der database.

 set_theme_mod('facebooklink_edit','aaabbbccc'); 

Um die 'type' => 'theme_mod' nur für Ihr Thema 'type' => 'theme_mod' verwenden Sie 'type' => 'theme_mod' .

 $wp_customize->add_setting( 'facebooklink_edit' , array( 'type' => 'theme_mod', // only for this theme 'transport' => 'refresh', 'default' => 'aaabbbccc' //'sanitize_callback' => 'someething...', ) ); 

Die Methode save() existiert innerhalb von class-wp-customize-manager() , sieht aber so aus, als ob sie nicht nur für die Verwendung mit JavaScript gedacht ist.

'theme_mod' Themeneinstellungen können im Allgemeinen 'theme_mod' oder 'option' .

Mein Vorschlag für Sie war theme_mod in diesem Fall zu verwenden.

if(!get_theme_mod('facebooklink_edit')) { set_theme_mod('facebooklink_edit','aaabbbccc'); }

Ich würde dies verwenden, um nur dann Wert festzulegen, wenn es nicht existiert.

statt nur.

set_theme_mod('facebooklink_edit','aaabbbccc');