HUSKY - Product Filter for WooCommerce

JSON-LD-Schema-Markup zu HUSKY-SEO-URL-Seiten hinzufügen

Problem

Das Feld „SEO-URL-Anfrage“ in HUSKY-Filtern<script>Tags aus Sicherheitsgründen, die das direkte Einfügen von strukturierten JSON-LD-Daten (Schema-Markup) für Rich-Suchergebnisse von Google verhindern.

Lösungsübersicht

Anstatt den vollständigen JSON-LD-Code direkt in das SEO-Textfeld einzufügen, verwenden SieSchemaschlüsselin HUSKY admin und speichern Sie den tatsächlichen JSON-LD-Code in separaten Dateien oder functions.php.


Methode 1: Statische JSON-Dateien (empfohlen für einfache Schemas)

Schritt 1:Erstellen Sie einen Ordner mit Schemadateien

  • Navigieren Sie zu/wp-content/uploads/
  • Neuen Ordner erstellen:json-ld-schemas

Schritt 2:Erstellen Sie JSON-Schemadateien

  • Erstellen Sie Dateien wiecategory1.json, products.json, usw.
  • Fügen Sie in jede Datei reinen JSON-LD-Code hinzu (ohne<script>Tags):
    {
        "@context": "https://schema.org", 
        "@type": "CollectionPage", 
        "name": "Product Category", 
        "description": "Category description"
    }

Schritt 3:Fügen Sie diesen Code hinzufunctions.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-Anfrage → SEO-Textfeld)

  • Geben Sie nur die einSchemaschlüssel(z.B.,category1)
  • Geben Sie NICHT den vollständigen JSON-LD-Code ein

Methode 2: Dynamische PHP-Dateien (für dynamische Schemas)

Schritt 1:Erstellen Sie PHP-Schemadateien 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 hinzufunctions.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:

  1. Gehen Sie zu den Einstellungen für „SEO-URL-Anfrage“.
  2. Erstellen Sie eine Regel für eine bestimmte Filterkombination
  3. Geben Sie im Feld „SEO-Text“ nur Folgendes ein:category-dynamic(oder ein beliebiger Schlüsselname)
  4. Speichern

Ergebnis:

  • Die Schemadatei/wp-content/uploads/json-ld-schemas/category-dynamic.phpwird geladen
  • JSON-LD wird in der Seitenquelle ordnungsgemäß gerendert
  • Google kann die strukturierten Daten lesen und validieren


Wichtige Hinweise

  • Verwenden Sie nur Schlüsselim HUSKY Admin SEO-Textfeld (z. B.products, category1)
  • Niemals einfügenVollständiger JSON-LD-Code direkt in den HUSKY-Administrator
  • Für statische Schemata → verwenden.json files
  • Für dynamische Schemata → verwenden.phpDateien, die ein Array zurückgeben
  • Leeren Sie den Cache, nachdem Sie Änderungen vorgenommen haben

Validierung

Validieren Sie nach der Implementierung Ihr Schema:

  1. Besuchen Sie die gefilterte Seite Ihrer Website
  2. Kopieren Sie die Seiten-URL
  3. Testen Sie bei:https://search.google.com/test/rich-results
  4. Auf Fehler prüfen