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 ''.get_theme_mod('mk_mytitle').'
';
}
Die durch den Customizer modifizierbare Überschrift wird mit Hilfe von get_theme_mod() in dein Theme eingebunden.
add_setting
muss selbstverständlich nicht leer seinadd_section
wird die Sektion erstellt in welchem sich dann der Controller (hier in Form eines Text-Eingabefeldes) für den Titel befinden soll