Hookok: strukturált adatok, vállalkozás, termékcsoport, szállítás és profiloldal
A strukturált adatok (JSON-LD) kimenetét módosító hookok: webhely, szervezet, helyi vállalkozás, könyv, ProfilePage, WooCommerce-szállítás, visszaküldési szabály és termékcsoport.
Ez a fejezet a strukturált adatokat (schema, JSON-LD) alakító hookokat gyűjti össze. A hookok használatának általános szabályait a Composer és hookok használata fejezet írja le. A kódot a gyermeksablonod functions.php fájljába vagy egy saját bővítménybe tedd.
| Hook | Legkisebb verzió | Mire jó |
|---|---|---|
seopress_schemas_website, seopress_schemas_website_html |
6.1, 8.0 | A webhely (WebSite) séma adatainak és kész HTML-jének módosítása. |
seopress_schemas_organization_html |
4.2 | A szervezet (Organization) séma JSON-szövegének módosítása vagy elhagyása. |
seopress_schemas_local_business_html |
4.5 | A helyi vállalkozás sémájának módosítása. |
seopress_schemas_auto_book_json, seopress_schemas_auto_book_html |
10.3 | Az automatikus könyvséma módosítása. |
seopress_schemas_profile_page_html |
9.5 | A ProfilePage séma kész JSON-szövegének módosítása. |
seopress_pro_schema_profilepage_data |
9.5 | A ProfilePage séma építéséhez használt adatok módosítása. |
plugins_loaded |
9.7 | A felhasználói profil SEOPress-mezőinek eltávolítása. |
seopress_pro_wc_schema_shipping_details |
9.5 | A termékséma szállítási tulajdonságainak módosítása. |
seopress_pro_wc_schema_shipping_details_enabled |
9.5 | A WooCommerce shippingDetails generálásának be- és kikapcsolása. |
seopress_pro_merchant_return_policy |
10.0 | A visszaküldési szabály (MerchantReturnPolicy) sémájának módosítása. |
seopress_pro_wc_product_group_schema, seopress_pro_wc_product_group_max_variants, seopress_pro_wc_product_group_attributes_map |
10.1 | A változó termékek ProductGroup sémája, a változatok számkorlátja és a tulajdonságleképezés. |
seopress_json_schema_generator_get_jsons, seopress_json_schema_generator_get_jsons_encoded |
4.5 | Az összes előállított JSON-LD séma módosítása kódolás előtt és után. |
Webhely séma
Szekció neve “Webhely séma”A seopress_schemas_website szűrő a WebSite séma adatait tömbként adja át ('tulajdonság' => 'érték' párokkal), és tömböt kell visszaadnod. A seopress_schemas_website_html szűrő a kész HTML-t kapja szövegként.
add_filter( 'seopress_schemas_website', 'sp_schemas_website' );function sp_schemas_website( $json ) { // A séma tömbként érkezik: 'tulajdonság' => 'érték'. return $json;}
add_filter( 'seopress_schemas_website_html', 'sp_schemas_website_html' );function sp_schemas_website_html( $html ) { // Itt módosíthatod a kész HTML-t. return $html;}Szervezet séma
Szekció neve “Szervezet séma”A seopress_schemas_organization_html szűrő a JSON-LD szöveget kapja, nem a <script> elemet (ebben különbözik a webhely séma szűrőjétől). Ha üres szöveget adsz vissza, a szervezet séma egyáltalán nem íródik ki.
function sp_organization_schema_html( $json ) { // $json a kódolt JSON-LD (nincs benne <script> címke). // Üres szöveggel eltávolítod a szervezet sémát. return $json;}add_filter( 'seopress_schemas_organization_html', 'sp_organization_schema_html' );Helyi vállalkozás séma
Szekció neve “Helyi vállalkozás séma”A seopress_schemas_local_business_html szűrő a helyi vállalkozás beállításaiból készülő, az egész webhelyre érvényes JSON-LD-t módosítja. A <script> elembe kerülő JSON-szöveget kapod, nem magát az elemet. Dekódold, módosítsd, majd kódold vissza.
function sp_local_business_schema_html( $json ) { $data = json_decode( $json, true );
if ( is_array( $data ) ) { $data['priceRange'] = '$$'; $json = wp_json_encode( $data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE ); }
return $json;}add_filter( 'seopress_schemas_local_business_html', 'sp_local_business_schema_html' );A helyi vállalkozás beállításairól a Helyi vállalkozás fejezet szól.
Automatikus könyvséma
Szekció neve “Automatikus könyvséma”Két szűrő van. A seopress_schemas_auto_book_json a Book sémát tömbként kapja kódolás előtt. A seopress_schemas_auto_book_html a teljes <script type="application/ld+json"> elemet kapja szövegként; ha üres szöveget adsz vissza, semmi nem íródik ki.
// Az automatikus Book séma (tömb, kódolás előtt).function sp_book_schema_json( $json ) { $json['inLanguage'] = 'hu-HU';
return $json;}add_filter( 'seopress_schemas_auto_book_json', 'sp_book_schema_json' );
// A teljes <script type="application/ld+json"> kimenet.function sp_book_schema_html( $html ) { // Üres szöveggel nem íródik ki semmi. return $html;}add_filter( 'seopress_schemas_auto_book_html', 'sp_book_schema_html' );ProfilePage séma
Szekció neve “ProfilePage séma”A ProfilePage sémáról a ProfilePage séma fejezet szól. Két szűrő módosítja.
Az építéshez használt adatok
Szekció neve “Az építéshez használt adatok”A seopress_pro_schema_profilepage_data szűrő a szerzői archívum ProfilePage sémájának adatait és a WP_User szerzőobjektumot adja át. Az adattömb kulcsai: name, alternateName, identifier, description, image, url, sameAs, postCount, dateCreated, dateModified. A Person főentitás az átadott adatokból épül újra, ezért az url mindig nem üres, abszolút URL maradjon.
function sp_profilepage_data( $profile_data, $author ) { $profile_data['sameAs'][] = 'https://example.com/csapat/' . $author->user_nicename;
return $profile_data;}add_filter( 'seopress_pro_schema_profilepage_data', 'sp_profilepage_data', 10, 2 );A kész JSON-LD
Szekció neve “A kész JSON-LD”A seopress_schemas_profile_page_html szűrő a kódolt JSON-LD szöveget kapja, <script> címke nélkül.
function sp_profile_page_schema_html( $json ) { // $json a kódolt JSON-LD (nincs benne <script> címke). return $json;}add_filter( 'seopress_schemas_profile_page_html', 'sp_profile_page_schema_html' );A felhasználói profilmezők eltávolítása
Szekció neve “A felhasználói profilmezők eltávolítása”A SEOPress Pro a felhasználói profiloldalra közösségi profil- és ProfilePage-mezőket tesz. Ha nem akarod, hogy megjelenjenek, a plugins_loaded akcióra kapcsolt, 21-es prioritású függvény kiveszi a UserProfileField osztály visszahívásait a négy profil-hookból (show_user_profile, edit_user_profile, personal_options_update, edit_user_profile_update).
add_action( 'plugins_loaded', 'seopress_remove_user_profile_fields', 21 );function seopress_remove_user_profile_fields() { global $wp_filter;
$hooks = array( 'show_user_profile', 'edit_user_profile', 'personal_options_update', 'edit_user_profile_update', );
foreach ( $hooks as $hook ) { if ( ! isset( $wp_filter[ $hook ] ) ) { continue; }
foreach ( $wp_filter[ $hook ]->callbacks as $priority => $callbacks ) { foreach ( $callbacks as $id => $callback ) { if ( is_array( $callback['function'] ) && is_object( $callback['function'][0] ) && $callback['function'][0] instanceof \SEOPressPro\Actions\Admin\UserProfileField ) { $wp_filter[ $hook ]->remove_filter( $hook, $callback['function'], $priority ); } } } }}WooCommerce szállítási adatok a terméksémában
Szekció neve “WooCommerce szállítási adatok a terméksémában”A szállítási tulajdonságok módosítása
Szekció neve “A szállítási tulajdonságok módosítása”A seopress_pro_wc_schema_shipping_details szűrő az OfferShippingDetails tömbök listáját (szállítási zónánként és díjszabásonként egyet) és az aktuális WC_Product objektumot adja át.
add_filter( 'seopress_pro_wc_schema_shipping_details', 'sp_wc_schema_shipping_details', 10, 2 );function sp_wc_schema_shipping_details( $shipping_offers, $wc_product ) { if ( ! is_array( $shipping_offers ) ) { return $shipping_offers; }
foreach ( $shipping_offers as $key => $offer ) { // Példa: szállítási idő hozzáadása minden ajánlathoz. $shipping_offers[ $key ]['deliveryTime'] = array( '@type' => 'ShippingDeliveryTime', 'handlingTime' => array( '@type' => 'QuantitativeValue', 'minValue' => 0, 'maxValue' => 1, 'unitCode' => 'DAY', ), 'transitTime' => array( '@type' => 'QuantitativeValue', 'minValue' => 2, 'maxValue' => 5, 'unitCode' => 'DAY', ), ); }
return $shipping_offers;}A szállítási adatok generálásának ki- és bekapcsolása
Szekció neve “A szállítási adatok generálásának ki- és bekapcsolása”A seopress_pro_wc_schema_shipping_details_enabled szűrő igaz/hamis értéket vár. A __return_true bekapcsolja, a __return_false kikapcsolja a WooCommerce shippingDetails sémagenerálást.
// Szállítási adatok bekapcsolásaadd_filter( 'seopress_pro_wc_schema_shipping_details_enabled', '__return_true' );
// Szállítási adatok kikapcsolásaadd_filter( 'seopress_pro_wc_schema_shipping_details_enabled', '__return_false' );Visszaküldési szabály (MerchantReturnPolicy)
Szekció neve “Visszaküldési szabály (MerchantReturnPolicy)”A seopress_pro_merchant_return_policy szűrő a WooCommerce visszaküldési beállításaiból épített MerchantReturnPolicy sémát adja át (@type, applicableCountry, returnPolicyCategory és a többi tulajdonság), valamint a seopress_pro_option_name opciót. A beállításról a WooCommerce visszaküldési szabály fejezet szól.
function sp_merchant_return_policy( $policy, $options ) { $policy['url'] = home_url( '/visszakuldes/' );
return $policy;}add_filter( 'seopress_pro_merchant_return_policy', 'sp_merchant_return_policy', 10, 2 );ProductGroup séma változó termékeknél
Szekció neve “ProductGroup séma változó termékeknél”A ProductGroup sémáról a ProductGroup fejezet szól. Három szűrő hangolja.
| Szűrő | Mit módosít | Alapérték |
|---|---|---|
seopress_pro_wc_product_group_schema |
A változó termék kész ProductGroup sémája (a séma, a WC_Product és a séma környezete érkezik). |
|
seopress_pro_wc_product_group_max_variants |
A hasVariant tulajdonságba kerülő változatok legnagyobb száma. A 0 vagy kisebb érték megszünteti a korlátot. |
50 |
seopress_pro_wc_product_group_attributes_map |
A változat-tulajdonságok (az attribute_ és pa_ előtag nélküli slug) leképezése schema.org tulajdonságra. |
color, colour, size, material, pattern |
A séma környezete (a harmadik paraméter) null, ha az automatikus sémát a régi építő állítja elő.
function sp_wc_product_group_schema( $json, $wc_product, $context ) { $json['inProductGroupWithID'] = $wc_product->get_sku();
return $json;}add_filter( 'seopress_pro_wc_product_group_schema', 'sp_wc_product_group_schema', 10, 3 );
// A hasVariant legnagyobb elemszáma (alapérték 50). A 0 vagy kisebb érték megszünteti a korlátot.add_filter( 'seopress_pro_wc_product_group_max_variants', function ( $limit, $wc_product ) { return 100;}, 10, 2 );
// A változat-tulajdonságok slugjának leképezése schema.org tulajdonságra.add_filter( 'seopress_pro_wc_product_group_attributes_map', function ( $map, $variation ) { $map['szin'] = 'color';
return $map;}, 10, 2 );Az összes előállított JSON-LD séma
Szekció neve “Az összes előállított JSON-LD séma”A seopress_json_schema_generator_get_jsons szűrő az összes sémát tömbként adja át kódolás előtt (a séma kulcsa szerint indexelve). A seopress_json_schema_generator_get_jsons_encoded a kész JSON-LD szövegeket adja át sémánként egyet, kódolás után.
function sp_json_schema_generator_get_jsons( $data ) { foreach ( $data as $key => $schema ) { if ( is_array( $schema ) && isset( $schema['@type'] ) && 'Article' === $schema['@type'] ) { $data[ $key ]['publisher']['name'] = get_bloginfo( 'name' ); } }
return $data;}add_filter( 'seopress_json_schema_generator_get_jsons', 'sp_json_schema_generator_get_jsons' );
// A kódolás utáni JSON-LD szövegek (sémánként egy).function sp_json_schema_generator_get_jsons_encoded( $data ) { return $data;}add_filter( 'seopress_json_schema_generator_get_jsons_encoded', 'sp_json_schema_generator_get_jsons_encoded' );Készült: