So fügen Sie benutzerdefinierte JSON-LD-Schema-Markup pro SEO-URL-Anfrage hinzu
Problem
Das Feld „SEO URL Request“ in den HUSKY-Filtern <script> Tags aus Sicherheitsgründen, um die direkte Einfügung von JSON-LD-strukturierten Daten (Schema Markup) für Google Rich Results zu verhindern.
Lösungsübersicht
Anstatt den vollständigen JSON-LD-Code direkt in das SEO-Textfeld einzufügen, verwenden Sie Schema-Schlüssel in HUSKY Admin und speichern Sie den eigentlichen JSON-LD-Code in separaten Dateien oder functions.php.
Methode 1: Statische JSON-Dateien (Empfohlen für einfache Schemata)
Schritt 1: Schema-Dateien-Ordner erstellen
- Navigieren zu
/wp-content/uploads/ - Neuen Ordner erstellen:
json-ld-schemas
Schritt 2: JSON-Schema-Dateien erstellen
- Erstelle Dateien wie
category1.json,products.json, usw. - Innerhalb jeder Datei reinen JSON-LD-Code hinzufügen (ohne
<script>Tags):{ "@context": "https://schema.org", "@type": "CollectionPage", "name": "Product Category", "description": "Category description" }
Schritt 3: Fügen Sie diesen Code hinzu zu functions.php:
add_action('init', function () {
$url_request = WOOF_EXT::$includes['applications']['url_request'];
remove_filter('woocommerce_after_shop_loop', array($url_request->seo, 'add_seo_text'), 99999);
add_filter('woocommerce_after_shop_loop', function () use ($url_request) {
$rule = $url_request->seo->check_search_rules();
if (!isset($rule['text']) || !$url_request->seo->do_index()) {
return;
}
$schema_key = apply_filters('woof_seo_text', $url_request->seo->replace_vars($rule['text'], $url_request->seo->get_current_replace_vars()));
if (!empty($schema_key)) {
$upload_dir = wp_upload_dir();
$schemas_dir = $upload_dir['basedir'] . '/json-ld-schemas/';
$schema_file = $schemas_dir . $schema_key . '.json';
if (file_exists($schema_file)) {
$json_content = file_get_contents($schema_file);
echo '<div class="woof_seo_text"><script type="application/ld+json">' . $json_content . "</script></div>\r\n";
}
}
}, 99999);
}, 1);
Schritt 4: Im HUSKY-Admin (SEO URL Request → SEO Textfeld)
- Geben Sie nur die Schema-Schlüssel (z. B.
category1) - Geben Sie NICHT den vollständigen JSON-LD-Code ein
Methode 2: Dynamische PHP-Dateien (für dynamische Schemata)
Schritt 1: PHP-Schema-Dateien erstellen in /wp-content/uploads/json-ld-schemas/
Beispiel: category-dynamic.php
<?php
global $wp_query;
$term = get_queried_object();
$category_name = $term ? $term->name : 'Products';
$category_url = get_term_link($term);
$schema = array(
'@context' => 'https://schema.org',
'@type' => 'CollectionPage',
'name' => $category_name,
'url' => $category_url,
'description' => term_description($term->term_id),
'breadcrumb' => array(
'@type' => 'BreadcrumbList',
'itemListElement' => array(
array(
'@type' => 'ListItem',
'position' => 1,
'name' => 'Home',
'item' => home_url()
),
array(
'@type' => 'ListItem',
'position' => 2,
'name' => $category_name,
'item' => $category_url
)
)
)
);
return $schema;
Schritt 2: Fügen Sie diesen Code hinzu zu functions.php:
add_action('init', function () {
$url_request = WOOF_EXT::$includes['applications']['url_request'];
remove_filter('woocommerce_after_shop_loop', array($url_request->seo, 'add_seo_text'), 99999);
add_filter('woocommerce_after_shop_loop', function () use ($url_request) {
$rule = $url_request->seo->check_search_rules();
if (!isset($rule['text']) || !$url_request->seo->do_index()) {
return;
}
$schema_key = apply_filters('woof_seo_text', $url_request->seo->replace_vars($rule['text'], $url_request->seo->get_current_replace_vars()));
if (!empty($schema_key)) {
$upload_dir = wp_upload_dir();
$schemas_dir = $upload_dir['basedir'] . '/json-ld-schemas/';
$schema_file = $schemas_dir . $schema_key . '.php';
if (file_exists($schema_file)) {
$schema_data = include($schema_file);
$json_output = json_encode($schema_data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);
echo '<div class="woof_seo_text"><script type="application/ld+json">' . $json_output . "</script></div>\r\n";
}
}
}, 99999);
}, 1);
Anwendungsbeispiel
Im HUSKY Admin:
- Gehen Sie zu den "SEO URL Request" Einstellungen
- Erstellen Sie eine Regel für eine bestimmte Filterkombination
- Geben Sie im Feld „SEO-Text“ nur ein:
category-dynamic(oder ein beliebiger Schlüsselname) - Speichern
Ergebnis:
- Die Schema-Datei
/wp-content/uploads/json-ld-schemas/category-dynamic.phpwird geladen - JSON-LD wird ordnungsgemäß im Seitenquelltext gerendert
- Google kann die strukturierten Daten lesen und validieren

Wichtige Hinweise
- Verwenden Sie nur Schlüssel im HUSKY Admin SEO-Textfeld (z.B.
products,category1) - Niemals einfügen vollständigen JSON-LD-Code direkt in das HUSKY-Admin-Interface
- Für statische Schemas → verwenden Sie
.jsonDateien - Für dynamische Schemata → verwenden Sie
.phpDateien, die ein Array zurückgeben - Cache nach Änderungen löschen
Validierung
Validieren Sie nach der Implementierung Ihr Schema:
- Besuchen Sie die gefilterte Seite auf Ihrer Website
- Kopieren Sie die Seiten-URL
- Test unter: https://search.google.com/test/rich-results
- Auf Fehler prüfen