WordPress Plugin für strukturierte Daten erstellen
19.Mrz.2019 Web-Entwicklung

WordPress Plugin für strukturierte Daten erstellen

Was sind strukturierte Daten?

Was sind strukturierte Daten? 2019-03-19T22:04:27+02:00 1 1

Strukturierte Daten sind weiterführende Informationen, in einem speziellen Format, zu deinen Website Inhalten. Diese helfen dem Crawler die Inhalte besser zu verstehen und somit einzuordnen. Daraus resoltieren zielgerichtete Ausgaben in den Suchmaschinen. Weitere Vorteile wie eine bessere Darstellung in den SERPS sind ein weiteres Feature.

1 2019-03-19T22:04:27+02:00

Zur Zeit beschäftige ich mich etwas genauer mit dem Thema „strukturierte Daten“ und ich möchte dieses interessante Thema gerne in meinem Blog etwas genauer beschreiben. Eine reine Beschreibung ist mir aber zu langweilig und praxisnahe Tutorials empfinde ich als deutlich angenehmer. Aus diesem Grund werden wir in diesem Artikel darauf eingehen, wie wir strukturierte Daten in unsere Website einbinden können und dieses automatisiert über ein WordPress Plugin, welches wir selber schreiben werden, lösen können.

Da die Entwicklung bzw die Erklärung zu der Entwicklung etwas länger werden könnte, unterteile ich es in mehrere Parts und erstelle zu dem Geschriebenen noch ein paar Videos.

Strukturierte Daten für Artikel

Im ersten Part dieser kleinen Reihe, beschäftigen wir uns mit der Auszeichnung von Blog-Artikeln. Hierfür gibt Google auf ihrer Website eine klare Empfehlung und liefert auch gleich Beispiele wie das Ganze umgesetzt werden sollte.

Kein Bock zu lesen? Dann schau dir einfach mein Video dazu an:

Strukturierte Daten in WordPress | Teil 1 Video

Suchmaschinen das Lesen unserer Website leichter zu machen mit strukturierten Daten. So schreibt man ein kleines Plugin für WordPress Artikel.

Plugin Grundstruktur erstellen

Im ersten Schritt legen wir erstmal eine Grundstruktur für unser Plugin an. Also einen Ordner im Plugin-Ordner und eine PHP-Datei in die wir den Standard WordPress Plugin Header einfügen, sowie eine Klasse die wir initialisieren. Für alle, die dies noch nie gemacht haben, hier der Code der unserem Plugin das erste Leben einhaucht:

<?php
/*
Plugin Name: TK structured Data
Plugin URI: https://tobier.de
Description: adds structured data to posts
Version: 0.1.0
Author: Tobier
Author URI: https://tobier.de
*/

$add_data = new structured_data();

class structured_data {
	public function __construct() {

	}
}

Beispiel JSON in PHP nachbauen

Haben wir das erledigt, gucken wir uns erst einmal das Beispiel für die strukturierten Daten von Google an. Google liefert uns also bereits ein vollständiges Beispiel im JSON Format, welches wir theoretisch nur mit unseren Daten füllen müssen und in unsere Website hooken (was sind wordpress hooks) müssen.

Google's Beispiel für Artikel strukturierte Daten
Google’s Beispiel für Artikel strukturierte Daten

Dieses Script könnten wir jetzt einfach her nehmen, eine Methode erstellen, das Script Copy und Pasten und anschließend in den Header einfügen. Da wir allerdings ein ordentliches Plugin erstellen wollen und uns für später auch noch die Möglichkeit erhalten wollen Daten via Filter ändern zu können, bauen wir das JSON Format in einem einfachen PHP Array nach und konvertieren es wieder zurück in das JSON Format.

Der Code für dieses Vorgehen sieht wie folgt aus und gibt uns die Möglichkeit bei Bedarf Filter für die Werte einzubauen.

public function addData(){
		if ( is_single() ) {
			$data = array(
				"@context"         => "https://schema.org",
				"@type"            => "NewsArticle",
				"mainEntityOfPage" => array(
					"@type" => "WebPage",
					"@id"   => get_the_permalink()
				),
				"headline"         => get_the_title(),
				"image"            => array( get_the_post_thumbnail_url() ),
				"datePublished"    => get_the_date( 'c' ),
				"dateModified"     => get_the_modified_date( 'c' ),
				"author"           => array(
					"@type" => "Person",
					"name"  => get_the_author()
				),
				"publisher"        => array(
					"@type" => "Organization",
					"name"  => get_bloginfo( 'name' ),
					"logo"  => array(
						"@type" => "ImageObject",
						"url"   => "https://dev.tobier.de/assets/themes/tobier_v2/img/logo.png"
					)
				),
				"description"      => wp_trim_words( get_the_content(), 40, '...' )
			);

			$data = json_encode( $data, JSON_UNESCAPED_SLASHES, JSON_UNESCAPED_UNICODE );
			echo '<script type="application/ld+json">' . $data . '</script>';
		}
	}

*Bei publisher ist derzeit eine fixe Logo-URL eingetragen, da es je nach Theme unterschiedlich abgefragt werden muss. Auf diesen Punkt gehen wir in einem späteren Teil noch einmal genauer ein.

Im Code siehst du nun also eine Methode mit dem Namen add_data() und eine einfache Abfrage, ob wir uns in einem single Post (Blogartikel) befinden. Wenn das zutrifft, erstellen wir ein Array ($data) und bilden dort nun die JSON Struktur nach, die uns Google empfiehlt.

Anstatt der Beispieldaten von Google, fügen wir direkt unsere Artikelwerte ein und wandeln in Zeile 29 das Array wieder in das JSON Format um. Anschließend geben wir unser JSON in einem Script Tag aus.

Fertige Methode in den Header hooken

Nun haben wir eine Methode in unserer Klasse, die bereits fertig ausgefüllt unsere strukturierten Daten ausgeben kann. Dafür müssen wir diese allerdings noch in den WordPress Head hooken.

Um diesen Punkt erfolgreich abzuhaken, fügen wir folgende Zeile Code in den Konstruktor unserer Klasse:

add_action( 'wp_head', array( $this, 'addData' ) );

Speichern wir diese Datei, laden sie wenn nötig auf den Server, aktivieren das Plugin und kontrollieren unsere Daten doch einmal mit dem Testtool. URL eines Artikels eingeben, „Test durchführen“ klicken und auf der rechten Seite „NewsArticle“ anklicken. Zum Vorschein kommen unsere eben angelegten strukturierten Daten, welche wir über eine einfache Methode in den Header gehookt haben.

Strukturierte Daten mit WordPress Daten
Strukturierte Daten mit WordPress Daten

Bereits jetzt sorgen wir also dafür, dass Suchmaschinen es einfacher haben unsere Blogartikel einzuordnen. Doch mit strukturierten Daten können wir noch viel mehr machen. Um euch das zu zeigen wird nächste Woche ein weiterer Teil dieses Artikels erscheinen, das Plugin wird erweitert und wir fügen noch mehr strukturierte Daten in unsere Websites ein.

Tobias Keller Web Entwickler
Tobias Keller Web Entwickler

Mit Leib und Seele Web Entwickler, immer auf der Suche nach der nächsten Herrausforderung, offen für Neues, Autodidakt.

Kommentare

Geschlossen wegen DSGVO, Artikel 13 Gedöns