Navigációs morzsa hookok: JSON-LD, osztályok, utolsó elem, kategóriák és CSS
Hét hook a SEOPress PRO navigációs morzsájának átalakításához: a JSON-LD kimenet, a taxonómia-elemek, a HTML-osztályok, a mikroadat-jelölés, az utolsó elem linkje, az elsődleges kategória listája és a blokkszerkesztő CSS-e.
Ez a fejezet azokat a hookokat gyűjti össze, amelyekkel a SEOPress PRO navigációs morzsájának (breadcrumb) kimenetét és viselkedését módosíthatod. A morzsa beállításairól a Navigációs morzsa (breadcrumbok) fejezet szól. A hookok használatának általános szabályait a Composer és hookok használata fejezet írja le. A kódot általában a gyermeksablonod functions.php fájljába vagy egy saját bővítménybe tedd.
| Hook | Típus | Legkisebb verzió | Mire jó |
|---|---|---|---|
seopress_pro_breadcrumbs_json |
szűrő | 7.3 | A morzsa JSON-LD tömbjének módosítása. |
seopress_primary_category_list |
szűrő | 7.0 | Az elsődleges kategória választójában felkínált kategóriák (termékkategóriák) listája. |
seopress_pro_breadcrumbs_terms |
szűrő | 6.1 | A morzsába kerülő taxonómia-elemek módosítása. |
wp_head |
művelet | 5.7 | A morzsa beágyazott CSS-ének eltávolítása. |
seopress_pro_breadcrumbs_html_markup |
szűrő | 5.6 | A HTML-morzsa mikroadat-jelölésének (schema.org) ki- és bekapcsolása. |
seopress_pro_breadcrumbs_last_item_linkable |
szűrő | 5.5 | Az utolsó morzsaelem linkké tétele. |
seopress_pro_breadcrumbs_html_class, seopress_pro_breadcrumbs_html_class_ol, seopress_pro_breadcrumbs_html_class_li, seopress_pro_breadcrumbs_html_class_li_active |
szűrő | 5.4, 6.9 | A morzsa HTML-elemeinek osztályai. |
A morzsa JSON-LD kimenetének módosítása
Szekció neve “A morzsa JSON-LD kimenetének módosítása”A seopress_pro_breadcrumbs_json szűrő a morzsa JSON-LD-jét egy PHP-tömbként adja át, mielőtt a SEOPress <script type="application/ld+json"> blokként kiírná. A szűrő akkor fut le, ha a SEO → PRO → Breadcrumbok fülön be van kapcsolva a JSON-LD breadcrumbok bekapcsolása kapcsoló. Visszaadott értékként a (módosított) tömböt add vissza.
add_filter( 'seopress_pro_breadcrumbs_json', 'sajat_morzsa_json' );function sajat_morzsa_json( $json ) { // Például a lista nevének átírása. $json['name'] = 'Útvonal'; return $json;}A tömb elemei: @context, name, @type (BreadcrumbList), a lista azonosítója (@id, a canonical URL és a #breadcrumb rész), és az itemListElement a morzsaelemekkel.
A morzsába kerülő taxonómia-elemek módosítása
Szekció neve “A morzsába kerülő taxonómia-elemek módosítása”A seopress_pro_breadcrumbs_terms szűrő egyedi bejegyzéseknél a morzsába kerülő osztályozás-elemek (kategória, termékkategória stb.) tömbjét adja át. Minden elem egy háromelemű tömb:
| Index | Tartalom |
|---|---|
0 |
az elem felirata |
1 |
az elem URL-je |
2 |
az osztályozási elem (term) azonosítója |
Példa: egy elem eltávolítása a morzsából az azonosítója alapján.
add_filter( 'seopress_pro_breadcrumbs_terms', 'sajat_morzsa_elemek' );function sajat_morzsa_elemek( $terms ) { foreach ( $terms as $kulcs => $elem ) { if ( 15 === (int) $elem[2] ) { unset( $terms[ $kulcs ] ); } } return array_values( $terms );}Az elsődleges kategória listájának szűrése
Szekció neve “Az elsődleges kategória listájának szűrése”A seopress_primary_category_list szűrő azt a listát adja át, amelyből az elsődleges kategóriát választhatod a szerkesztőoldalon. Bejegyzéseknél a Kategóriák, WooCommerce-termékeknél a Termékkategóriák elemei szerepelnek benne. A szűrő csak ezekre a két osztályozásra (category és product_cat) fut le. Az elsődleges kategória a morzsában és a %category% típusú permalinkekben érvényesül, a funkcióról az Elsődleges kategória fejezet szól.
A szűrő a kategóriák tömbjét kapja. Ha nincs hozzárendelt kategória, a tömb helyett false vagy hibaobjektum is érkezhet, ezért módosítás előtt ellenőrizd a típust.
add_filter( 'seopress_primary_category_list', 'sajat_elsodleges_kategoria_lista' );function sajat_elsodleges_kategoria_lista( $kategoriak ) { if ( ! is_array( $kategoriak ) ) { return $kategoriak; } // A „Egyéb” kategória (slug: egyeb) ne legyen választható. return array_filter( $kategoriak, function ( $kategoria ) { return 'egyeb' !== $kategoria->slug; } );}A kategóriák tetszőleges objektumok lehetnek, ha van term_id tulajdonságuk. A szűrő mellett van egy újabb, seopress_primary_term_list nevű változat is, amely a taxonómia nevét és a bejegyzést is megkapja, és minden osztályozásra lefut, nem csak a kategóriákra.
A morzsa beágyazott CSS-ének eltávolítása
Szekció neve “A morzsa beágyazott CSS-ének eltávolítása”Ha a morzsa (HTML vagy JSON-LD) be van kapcsolva, a SEOPress PRO a wp_head hookon egy kis beágyazott stíluslapot ír ki a fejrészbe: a morzsalistából vízszintes sort csinál, és a Breadcrumb-elválasztó mezőben megadott jelet teszi az elemek közé. A blokkszerkesztőben látható morzsa ugyanezt a CSS-t használja alapértelmezett stílusként.
Ha saját stílust használsz, a beágyazott CSS-t a wp_head hookról leveheted. A seopress_breadcrumbs_inline_css függvény a 30-as prioritással kapcsolódik, ezért az eltávolításnak is ezt kell megadnia, és később kell lefutnia, mint a SEOPress betöltése:
add_action( 'wp', 'sajat_morzsa_css_eltavolitasa' );function sajat_morzsa_css_eltavolitasa() { remove_action( 'wp_head', 'seopress_breadcrumbs_inline_css', 30 );}A stíluslap szövegét a seopress_pro_breadcrumbs_css szűrő is módosítja: a szűrő a teljes <style>…</style> szöveget adja át és várja vissza.
A HTML-morzsa mikroadat-jelölésének kikapcsolása
Szekció neve “A HTML-morzsa mikroadat-jelölésének kikapcsolása”Ha a JSON-LD morzsa ki van kapcsolva, a HTML-morzsa saját schema.org mikroadat-jelölést (itemscope, itemprop) kap. Ha a JSON-LD be van kapcsolva, a SEOPress ezt a jelölést automatikusan elhagyja, hogy ne legyen kétszer ugyanaz a séma az oldalon.
A seopress_pro_breadcrumbs_html_markup szűrő ezt az automatikus döntést írja felül: true esetén a HTML-morzsa tartalmazza a mikroadat-jelölést, false esetén tiszta HTML marad.
add_filter( 'seopress_pro_breadcrumbs_html_markup', '__return_false' );Az utolsó morzsaelem linkké tétele
Szekció neve “Az utolsó morzsaelem linkké tétele”Alapból az utolsó elem (az aktuális oldal) sima szöveg, nincs benne link. A seopress_pro_breadcrumbs_last_item_linkable szűrő alapértéke false; true-ra állítva az utolsó elem is hivatkozás lesz.
add_filter( 'seopress_pro_breadcrumbs_last_item_linkable', '__return_true' );A morzsa HTML-osztályainak módosítása
Szekció neve “A morzsa HTML-osztályainak módosítása”Négy szűrővel cserélheted le a morzsa elemeinek osztályait, például hogy a témád vagy a CSS-keretrendszered osztályait használja. A class_li, class_li_active és class_ol szűrő teljes HTML-attribútumot ad át és vár vissza (a class="…" részt is), a html_class szűrő a <nav> elemé.
| Szűrő | Elem | Alapérték |
|---|---|---|
seopress_pro_breadcrumbs_html_class |
a <nav> elem |
üres |
seopress_pro_breadcrumbs_html_class_ol |
az <ol> lista |
class="breadcrumb" |
seopress_pro_breadcrumbs_html_class_li |
a <li> elemek |
class="breadcrumb-item" |
seopress_pro_breadcrumbs_html_class_li_active |
az utolsó (aktív) <li> |
class="breadcrumb-item active" |
add_filter( 'seopress_pro_breadcrumbs_html_class_ol', function () { return 'class="sajat-morzsa"';} );add_filter( 'seopress_pro_breadcrumbs_html_class_li', function () { return 'class="sajat-morzsa__elem"';} );add_filter( 'seopress_pro_breadcrumbs_html_class_li_active', function () { return 'class="sajat-morzsa__elem sajat-morzsa__elem--aktiv"';} );add_filter( 'seopress_pro_breadcrumbs_html_class', function () { return 'class="sajat-morzsa-nav"';} );Fontos: a beágyazott CSS a .breadcrumb és .breadcrumb li osztályokra hivatkozik. Ha lecseréled az osztályokat, az elválasztó jelek és a vízszintes elrendezés elveszhet, ezért saját CSS-t is adj hozzá, vagy távolítsd el a beágyazott stíluslapot a fenti módon.
Készült: