WordPress Customizer Teaser Image

Erstellt am 10. September 2017 von Looplogic

In diesem Beitrag erläutere ich wie ihr eurem WordPress Theme, im Custemizer, ein Placeholder Bild für Artikel ohne Bild erstellen könnt.

Zuerst muss im Custemizer die Optionen dafür eingetragen werden. 

In die function.php:

add_action( 'customize_register', 'cd_customizer_settings' );
function cd_customizer_settings( $wp_customize ) {
  $wp_customize->add_setting( 'theme_header_teaser' );
  $wp_customize->add_control(
      new WP_Customize_Image_Control(
          $wp_customize,'theme_header_teaser',array(
              'label' => 'Default Teaser Image',
              'section' => 'title_tagline',
              'settings' => 'theme_header_teaser',
              'priority' => 10
          )
      )
  );
}

„add_action“ sagt WordPress das eine neue Option erstellt werden soll. In Fachkreisen wird dies ein Hook genannt.
„add_setting“ gibt an, das eine neue Option in der Datenbank hinterlegt werden soll, es definiert sozusagen eine neue Zeile in der DB.
Mit „new WP_Customize_Image_Control“ wird ein Objekt von einer Bildoption erstellt.
-> label: Beschriftung im Adminbereich
-> section: wo die neue Option erscheinen soll (in diesem Fall die Standartsektion in der auch das Logo gestzt wird)
-> settings: Variable in der Datenbank (muss die sein die wir selber erstellt haben
-> priority: Position der Option im Adminbereich

Nun muss noch im Theme das Defaultimage platziert werden.
im Theme (z.B. index.php)

if ( has_post_thumbnail() ){
  the_post_thumbnail();
} else {
  echo '';
}

Zuerst wird geprüft ob ein Teaserimage vorhanden ist, wenn nein springt es in den else Bereich. dort wird über get_theme_mod die URI des Bildes, dass im Adminbereich hinterlegt wurde geladen.