WordPress Theme Customizer API: Einen Text anpassbar machen

1. Erstelle eine Datei in deinem Theme Verzeichnis:

				
					includes/theme-customizer.php
				
			

In „theme-customizer.php“ kommt der Code, welcher mit der Theme Customizer API kommuniziert. Ein guter Ort für die Datei ist z.B. ein „includes“-Ordner.

2. Integriere die Datei in deine functions.php:

				
					include(get_theme_file_path('/includes/theme-customizer.php));
				
			

Damit dein API Code aktiv wird, muss dieser in der functions.php deines Themes mit z.B. include aufgerufen werden.

3. Erstelle eine register Funktion in theme-costumizer.php

				
					function mk_register_customizer($wp_customize){

    // Erstellt den Wert für die Datenbank
    $wp_customize->add_setting('mk_mytitle',[
        'default' => ''
    ]);

    // Erstellt eine eigene Sektion im Customizer Control Panel
    $wp_customize->add_section('mk_mytitle_section',[
        'title' => __('Titel anpassen', 'name_des_themes'),
        'priority' => 30
    ]);

    // Erstellt ein input Feld in der Sektion
    $wp_customize->add_control(
        $wp_customize->add_control( 'mk_mytitle', array(
            'label' => __( 'Titel anpassen' ),
            'type' => 'input',
            'section' => 'mk_mytitle_section',
        ))
    );
}
				
			

Um die Überschrift über den Theme Customizer anpassbar zu machen, muss diese mit Hilfe einer Funktion dort registiert werden.

Die Registrierungsfunktion erhält aus dem späteren Aufruf durch den Action Hook „customize_register“ ein spezielles Objekt. Dieses beinhaltet die Methoden, welche wir brauchen, um die Überschrift im Customizer bearbeitbar zu machen,

4. action hook in functions.php registrieren

				
					add_action('customize_register','mk_register_customizer');
				
			

Unsere Registrierungsfunktion wird nun über den „customize_register“ Action Hook aktiviert. Dabei wird unserer Funktion auch das Objekt übergeben, das die Methoden bereithält, mit der wir in unserer Funktion mit der API kommuniziert haben.

5. Füge in der entsprechenden Template-Datei die Ausgabe ein:

				
					if(get_theme_mod('mk_mytitle')){
  echo '<h1>'.get_theme_mod('mk_mytitle').'</h1>';
}
				
			

Die durch den Customizer modifizierbare Überschrift wird mit Hilfe von get_theme_mod() in dein Theme eingebunden.

Weiteres

  • in der register Funktion können beliebig viele Optionen für den Customizer mittels add_setting erstellt werden
  • der default Wert in add_setting muss selbstverständlich nicht leer sein
  • Mittels add_section wird die Sektion erstellt in welchem sich dann der Controller (hier in Form eines Text-Eingabefeldes) für den Titel befinden soll
  • Der Controller kann auch einer bereits vorhanden Sektion zugewiesen werden
  • Der Controller für den Titel ist hier ein Input Feld. WordPress stellt verschiedene fertige Controller Typen zur Verfügung, z.B. Textfelder, Auswahlboxen, Farbenwähler usw.