Tovább a tartalomhoz

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.

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;
}

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' );

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.

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' );

A ProfilePage sémáról a ProfilePage séma fejezet szól. Két szűrő módosítja.

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 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ása
add_filter( 'seopress_pro_wc_schema_shipping_details_enabled', '__return_true' );
// Szállítási adatok kikapcsolása
add_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 );

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:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások