SEO-Texte je URL-Pfad über eine JSON-Datei hinterlegen

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

Verwandte Themen

SEO-Titel, -Beschreibung und Open-Graph-Daten anpassen

Hooks in OBS nutzen (Filter und Actions)