Statt SEO-Texte im Code zu verdrahten, pflegst Du sie zentral in einer JSON-Datei. Dieser Beitrag zeigt die PHP-Funktion und die Verbindung mit den OBS-SEO-Hooks.
Die Idee
Statt SEO-Texte im Code fest zu verdrahten, hinterlegst Du sie in einer JSON-Datei im Child-Theme. Eine kleine PHP-Funktion liest daraus – je nach Pfad und Position (z. B. Titel oder Beschreibung) – den passenden Text und gibt ihn über die OBS-SEO-Hooks aus. So pflegst Du die Meta-Texte einzelner Produkt- und Kategorie-Seiten zentral an einer Stelle.
JSON-Datei im Child-Theme
Lege die Werte in einer Datei ab, z. B. assets/seo-values.json im aktiven (Child-)Theme. Darin ordnest Du je Position und Pfad einen Text zu.
PHP-Funktion zum Auslesen
Kopiere die Funktion in die functions.php des Child-Themes:
/**
* SEO-Text aus einer JSON-Datei für Pfad und Position lesen.
*/
function obs_get_seo_from_json( string $position, string $path ): ?string {
$path_to_seo_json = get_stylesheet_directory. '/assets/seo-values.json';
if ( file_exists( $path_to_seo_json ) ) {
$json_seo = file_get_contents( $path_to_seo_json );
if ( false !== $json_seo ) {
$seo = json_decode( $json_seo, true );
return $seo[ $position ][ $path ] ?? null;
}
}
return null;
}Mit den SEO-Hooks verbinden
Rufe die Funktion in den SEO-Hooks (obs_meta_title, obs_meta_description) auf und gib den gefundenen Wert zurück. Die Hooks selbst sind im Beitrag zu den SEO-Metadaten beschrieben.
WEITERLESEN