wStringconverter::escapeForJsonLd

Dekodiert HTML-Sonderzeichen vollständig für JSON-LD

Funktionsaufruf

String escapeForJsonLd($str, $options = array())

Parameter

ParameterBeschreibung
strString

Diese Funktion wurde speziell für die Aufbereitung von Werten in JSON-LD-Strukturen entwickelt. Sie dekodiert HTML-Sonderzeichen vollständig und sorgt dafür, dass Inhalte unabhängig von ihrem Maskierungsgrad in einer für JSON-LD gültigen, sauberen Form vorliegen.

Beispiel: Beispiel: BreadcrumbList als JSON-LD mit foreach-Schleife

Quelltext

<?php

<wsl:php>

/* Initialisierung */
$jsonLdBreadcrumbList = array();
$listItemPosition = 1;

/* Beispiel: Pfad-Hierarchie der aktuellen Seite */
$breadcrumbPaths = array(
  '/',                           // Startseite
  '/produkte/',                  // Kategorie
  '/produkte/elektronik/',       // Unterkategorie
  '/produkte/elektronik/laptop/' // Aktuelle Seite
);

/* Basis-URL der Website */
$baseUrl = 'https://www.domain.dd';

/* Zusammenbau der JSON-Objekte */
foreach ($breadcrumbPaths as $wDocumentPath) {
    
  // Vollständigen Link aufbauen
  $linkFull = $baseUrl . $wDocumentPath;
  
  // Eintrag dem Array hinzufügen
  $jsonLdBreadcrumbList[] = array(
    '@type'    => 'listItem',
    'position' => $listItemPosition++,
    'item'     => array(
        '@id'  => $linkFull,
        'name' => wStringconverter::escapeForJsonLd(wDocumentData::getData($wDocumentPath, 'title')
      )
    )
  );
}

/*Schreiben des JSON-LD-Textes*/
print '<script type="application/ld+json">
  {"@context": "https://schema.org",
   "@type": "BreadcrumbList",
   "itemListElement":'.json_encode($jsonLdBreadcrumbList, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP).'
  }        
</script>

</wsl:php>

?>

Hinweis
Beim Einsatz von Framework-Funktionen in eigenen Skripten beachten Sie bitte den Artikel "So verwenden Sie das PHP-Framework in eigenen Scripten".
Wenn Sie eine Funktion innerhalb einer Weblication® Seite z.B. über das PHP-Quelltext Element oder in einem XSL-Template über wsl:php einbinden, muss das Framework über die grid.php nicht mehr referenziert werden.