Tovább a tartalomhoz

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

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:

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