it-swarm.com.de

Hinzufügen von strukturierten JSON-Daten zu WordPress

Ich möchte einige strukturierte Daten hinzufügen, die Googles Empfehlungen folgen. Befolgen Sie die Anweisungen auf ihrer Website, heißt es:

Das Markup wird in einem Skript-Tag im Kopf der HTML-Seite platziert. Das Markup muss nicht mit dem vom Benutzer sichtbaren Text verschachtelt sein, wodurch verschachtelte Datenelemente leichter ausgedrückt werden können, z. B. das Land einer Postanschrift eines Musik-Veranstaltungsorts eines Ereignisses. Google kann JSON-LD-Daten auch lesen, wenn sie dynamisch in den Inhalt der Seite eingefügt werden, z. B. durch JavaScript-Code oder eingebettete Widgets in Ihrem Content-Management-System.

Es heißt, es sollte in einem Skript-Tag im Kopf der HTML-Seite eingefügt werden, aber ich habe mich gefragt, ob es auch möglich ist, es über eine JSON-Datei in der Datei header.php (geladen in fucntions.php) hinzuzufügen. Wenn es möglich ist, wie würden Sie dann auch Breadscrumb SD hinzufügen?

Wenn das oben Genannte zu viel Mühe bereitet oder nicht der richtige Weg ist, was ist der am besten empfohlene Weg, um strukturierte Daten zu einer WordPress-Site hinzuzufügen, bei dem kein Plugin erforderlich ist.

1
Edgar Quintero

Wenn Sie das Thema selbst erstellen, können Sie das Schema Microata-Markup immer direkt im Thema selbst verwenden.

Wie wir im folgenden Beispiel sehen können, kann das Hinzufügen zusätzlicher Attribute zu Ihrem HTML-Code die Schemakompatibilität erhöhen. In diesem Fall verwenden wir itemscope, itemtype und itemprop:

Aus http://schema.org/docs/gs.html#microdata_how

<div itemscope itemtype ="http://schema.org/Movie">
  <h1 itemprop="name">Avatar</h1>
  <div itemprop="director" itemscope itemtype="http://schema.org/Person">
  Director: <span itemprop="name">James Cameron</span> (born <span itemprop="birthDate">August 16, 1954</span>)
  </div>
  <span itemprop="genre">Science fiction</span>
  <a href="../movies/avatar-theatrical-trailer.html" itemprop="trailer">Trailer</a>
</div>

Wenn Sie jedoch das JSON-LD-Markup verwenden möchten, sollten Sie erwägen, das JSON-LD mit einer PHP JSON-LD-Bibliothek zu generieren und den Code in Ihren Header einzufügen, indem Sie ihn anfügen die wp_head funktion:

Zusammengesetzt aus dem PHP-JSON-LD GitHub-Beispiel :

<?php

// Describe your Thing to be marked up as an array
$doc = (object) array(
    "http://schema.org/name" => "Manu Sporny",
    "http://schema.org/url" => (object) array("@id" => "http://manu.sporny.org/"),
    "http://schema.org/image" => (object) array("@id" => "http://manu.sporny.org/images/manu.png")
);

// Describe it's schema context as well
$context = (object)array(
  "name" => "http://schema.org/name",
  "homepage" => (object)array("@id" => "http://schema.org/url", "@type" => "@id"),
  "image" => (object)array("@id" => "http://schema.org/image", "@type" => "@id")
);

function wp_json_ld($doc, $context) {
    require_once('/path/to/library');

    // Pass it through this magical function
    $compacted = jsonld_compact($doc, $context);

    echo '<script type="application/ld+json">';
    echo json_encode($compacted, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
    echo '</script>';
}

/* Output:
<script type="application/ld+json">
{
  "@context": {...},
  "image": "http://manu.sporny.org/images/manu.png",
  "homepage": "http://manu.sporny.org/",
  "name": "Manu Sporny"
}
</script>
*/

// Add it to wp_head
add_action('wp_head', 'wp_json_ld');
3
FaCE