Oldaltérkép-hookok: képtérkép, szerzői térkép, térképindex és HTML-térkép lekérdezései
Szűrők a képtérkép képeihez és rövidkódjaihoz, a lapozott térképek méretéhez, a szerzői és a Google News térkép kész XML-jéhez, a térképindexhez, valamint a HTML-térkép tartalomtípusaihoz és hierarchiájához.
Ez a fejezet tizenegy további térképszűrőt ír le: a képtérkép, a lapozás, a szerzői és a Google News térkép, a térképindex és a HTML-térkép szűrőit. A hookok használatának általános szabályait a Composer és hookok használata fejezet tartalmazza. A kódot a gyermeksablonod functions.php fájljába vagy egy saját bővítménybe tedd. A többi térképszűrő a XML-térkép és videótérkép hookjai, a HTML-térkép hookjai, az XSL, URL és egyéb hookok és a térképindex, lapozás és kész XML hookjai fejezetben van.
| Hook | Legkisebb verzió | Mire jó |
|---|---|---|
seopress_sitemaps_single_img |
3.6.2 | Egyéni képadatok (például egyedi mezők) hozzáadása a képtérkép egy tartalmához. |
seopress_sitemaps_single_img_url |
3.7.3 | A tartalomból kinyert képek URL-je a képtérképen. |
seopress_sitemaps_single_shortcodes |
3.7.3 | A rövidkódok lefuttatása a tartalomban a képek keresése előtt. |
seopress_sitemaps_max_posts_per_sitemap |
3.7.1 | Legfeljebb hány tartalom lehet egy lapozott térképoldalon. |
seopress_sitemaps_author_query |
3.6.5 | A szerzői térkép felhasználó-lekérdezése. |
seopress_sitemaps_xml_author |
3.7.5 | A szerzői térkép kész XML-je. |
seopress_sitemaps_xml_news |
3.7.5 | A Google News térkép kész XML-je. |
seopress_sitemaps_xml_index |
3.7.5 | A térképindex kész XML-je. |
seopress_sitemaps_html_cpt |
3.6 | A HTML-térképen szereplő tartalomtípusok. |
seopress_sitemaps_html_pages_query |
3.3.7 | A hierarchikus tartalomtípusok (például oldalak) lekérdezése a HTML-térképen. |
seopress_sitemaps_html_pages_depth_query |
3.6.2 | A hierarchia mélységhatára a HTML-térképen. |
Az alábbiakban a szűrőket témánként írom le. A példák függvényneveit cseréld a sajátjaidra.
A képtérkép szűrői
Szekció neve “A képtérkép szűrői”A képtérkép az XML-tartalomtérkép része: bekapcsolva minden tartalom <url> elemébe <image:image> elemek kerülnek. A SEOPress a tartalom szövegéből kigyűjti az img elemek src értékét, hozzáteszi a WooCommerce-termék galériaképeit és a kiemelt képet. A három szűrő ebbe a folyamatba szól bele. A képtérkép bekapcsolásáról az XML-térkép és képtérkép fejezet szól.
Képek URL-je
Szekció neve “Képek URL-je”A seopress_sitemaps_single_img_url szűrő a tartalomból kinyert minden kép src értékét (szöveg) adja át, még azelőtt, hogy a SEOPress megtisztítaná és a térképbe írná. Szöveget kell visszaadnod. Ha üres szöveget adsz vissza, a kép kimarad a térképről. A Google News térkép képei is ezen a szűrőn mennek át.
Példa: a térképre kerülő képek URL-jében a tesztkörnyezet címe helyett az éles cím szerepeljen:
add_filter( 'seopress_sitemaps_single_img_url', 'sajat_terkep_kep_url' );function sajat_terkep_kep_url( $url ) { return str_replace( 'https://teszt.example.com', 'https://www.example.com', $url );}Példa: egy bizonyos mappa képei ne szerepeljenek:
add_filter( 'seopress_sitemaps_single_img_url', 'sajat_terkep_kep_kizaras' );function sajat_terkep_kep_kizaras( $url ) { if ( false !== strpos( $url, '/privat/' ) ) { return ''; } return $url;}Rövidkódok futtatása
Szekció neve “Rövidkódok futtatása”Alapból a SEOPress a tartalom nyers szövegében keresi a képeket, a rövidkódokat nem futtatja le. Ezért ha egy rövidkód (például galéria) rakja ki a képeket, azok nem kerülnek a képtérképre. A seopress_sitemaps_single_shortcodes szűrő alapértéke false. Ha true értéket adsz vissza, a SEOPress a tartalmon lefuttatja a rövidkódokat, és a keletkező képek is bekerülnek. A beállítás a Google News térképre is érvényes.
add_filter( 'seopress_sitemaps_single_shortcodes', '__return_true' );A rövidkódok futtatása lassíthatja a térkép előállítását, főleg sok tartalomnál, ezért csak akkor kapcsold be, ha szükséged van rá.
Egyéni képadatok a térképen
Szekció neve “Egyéni képadatok a térképen”A seopress_sitemaps_single_img szűrő egy tartalom <url> elemének addig összeállított XML-töredékét (szöveg) és a tartalom azonosítóját ($post) adja át. A töredék a <loc> és a <lastmod> sort, valamint az eddigi <image:image> elemeket tartalmazza. Szöveget kell visszaadnod: a saját <image:image> elemeidet fűzd a kapott szöveg végére. A szűrő csak akkor fut le, ha a képtérkép be van kapcsolva, és a tartalmon nincs „noimageindex” beállítva.
Példa: egy egyedi mezőben tárolt kép felvétele a termékek képei közé:
add_filter( 'seopress_sitemaps_single_img', 'sajat_terkep_egyeni_kep', 10, 2 );function sajat_terkep_egyeni_kep( $xml, $post_id ) { $kep = get_post_meta( $post_id, 'extra_kep_url', true ); if ( $kep ) { $xml .= "\n<image:image>\n<image:loc><![CDATA[" . esc_url_raw( $kep ) . "]]></image:loc>\n</image:image>"; } return $xml;}Fontos: az <image:image> elemeket mindig a kapott szöveg végére írd, és ne töröld a meglévő részt, különben a tartalom URL-je kiesik a térképből.
Lapozott térképek mérete
Szekció neve “Lapozott térképek mérete”Ha egy tartalomtípusnak sok eleme van, a SEOPress több térképoldalra osztja. A seopress_sitemaps_max_posts_per_sitemap szűrő azt adja meg, hány tartalom kerüljön egy oldalra. Az alapérték 1000. Számot kell visszaadnod. A szűrőt a térképindex és a tartalomtípusok térképoldalai egyaránt használják, így a lapok száma és tartalma összhangban marad.
add_filter( 'seopress_sitemaps_max_posts_per_sitemap', 'sajat_terkep_oldalmeret' );function sajat_terkep_oldalmeret( $max ) { return 500;}Kisebb érték akkor segít, ha a térkép előállítása lassú vagy időtúllépéssel áll le. A kategóriák és a videók oldalméretét más szűrők adják (lásd a térképindex és lapozás fejezetben).
A szerzői térkép
Szekció neve “A szerzői térkép”A szerzői térkép a szerzői archívumok URL-jeit sorolja fel. A térkép és a szerzői archívum bekapcsolásáról az Oldaltérképek: kizárás és tagok fejezet szól.
Lekérdezés
Szekció neve “Lekérdezés”A seopress_sitemaps_author_query szűrő a szerzők lekéréséhez használt get_users() paramétertömböt adja át. A módosított tömböt kell visszaadnod. Az alapértelmezett tömb:
| Kulcs | Alapérték | Jelentés |
|---|---|---|
fields |
ID |
Csak a felhasználó azonosítóját kéri le. |
orderby |
nicename |
A sorrend alapja a felhasználó URL-barát neve. |
order |
ASC |
Növekvő sorrend. |
has_published_posts |
post |
Csak azok szerepelnek, akiknek van közzétett bejegyzésük. |
blog_id |
az aktuális webhely | Többhelyes (multisite) telepítésnél az aktuális webhely. |
lang |
üres | A nyelvszűrés kikapcsolva. |
Példa: a közzétett oldallal vagy bejegyzéssel rendelkező szerzők is szerepeljenek, ne csak a bejegyzés szerzői:
add_filter( 'seopress_sitemaps_author_query', 'sajat_szerzo_terkep_lekerdezes' );function sajat_szerzo_terkep_lekerdezes( $args ) { $args['has_published_posts'] = array( 'post', 'page' ); return $args;}Példa: csak a szerkesztők és a szerzők kerüljenek a térképre:
add_filter( 'seopress_sitemaps_author_query', 'sajat_szerzo_terkep_szerepkor' );function sajat_szerzo_terkep_szerepkor( $args ) { $args['role__in'] = array( 'author', 'editor' ); return $args;}Kész XML
Szekció neve “Kész XML”A seopress_sitemaps_xml_author szűrő a szerzői térkép teljes XML-jét adja át szövegként. Szöveget kell visszaadnod. Akkor használd, ha az elkészült kimenetet utólag kell átalakítanod, például egy elemet kihagynál. Érvényes XML-t adj vissza, különben a keresőmotorok nem tudják beolvasni a térképet.
A Google News térkép és a térképindex kész XML-je
Szekció neve “A Google News térkép és a térképindex kész XML-je”Két további szűrő is a már elkészült XML-t kapja, szövegként, és szöveget vár vissza:
| Hook | Mit ad át | Mikor fut le |
|---|---|---|
seopress_sitemaps_xml_news |
A Google News térkép teljes XML-je. | A News térkép minden lekérésekor (SEOPress PRO). |
seopress_sitemaps_xml_index |
A térképindex (<sitemapindex>) teljes XML-je. |
A fő sitemaps.xml lekérésekor. |
Példa: a térképindex végére egy megjegyzés kerül, hogy lásd, a szűrő működik:
add_filter( 'seopress_sitemaps_xml_index', 'sajat_terkep_index_megjegyzes' );function sajat_terkep_index_megjegyzes( $xml ) { return $xml . "\n<!-- Saját megjegyzés -->";}Ha a térképindexbe külső térképet szeretnél felvenni, arra külön szűrő van (seopress_sitemaps_external_link, lásd a térképindex és lapozás fejezetben): az egyszerűbb és biztonságosabb, mint a kész XML szövegének átírása. A térképek gyorsítótárazott kimenete miatt a módosítás megjelenéséhez ürítsd a térképek gyorsítótárát, ha van ilyen.
A HTML-térkép szűrői
Szekció neve “A HTML-térkép szűrői”A HTML-térkép a [seopress_html_sitemap] rövidkóddal, blokkal vagy a térkép oldalon jelenik meg, a beállításairól a HTML-térkép fejezet szól.
Tartalomtípusok
Szekció neve “Tartalomtípusok”A seopress_sitemaps_html_cpt szűrő azt a tömböt adja át, amelynek kulcsai a HTML-térképen szereplő tartalomtípusok azonosítói, értékei pedig array( 'include' => '1' ) alakúak. A módosított tömböt kell visszaadnod. A SEOPress belső típusait (például a 404-figyelő bejegyzéseit) és a már nem létező típusokat a szűrő után is eltávolítja, így azokat nem tudod kitenni.
Példa: a „portfólió” egyéni bejegyzéstípus is szerepeljen a térképen:
add_filter( 'seopress_sitemaps_html_cpt', 'sajat_html_terkep_tipusok' );function sajat_html_terkep_tipusok( $tipusok ) { $tipusok['portfolio'] = array( 'include' => '1' ); return $tipusok;}Példa: a térképen csak az oldalak szerepeljenek:
add_filter( 'seopress_sitemaps_html_cpt', 'sajat_html_terkep_csak_oldal' );function sajat_html_terkep_csak_oldal( $tipusok ) { return array( 'page' => array( 'include' => '1' ) );}Hierarchikus tartalomtípusok lekérdezése
Szekció neve “Hierarchikus tartalomtípusok lekérdezése”A hierarchikus típusokat (például az oldalakat) a SEOPress a get_pages() függvénnyel kérdezi le, és szülő-gyerek szerkezetben jeleníti meg. A seopress_sitemaps_html_pages_query szűrő ennek a függvénynek a paramétertömbjét ($args) és a tartalomtípus azonosítóját ($cpt_key) adja át. A tömb tartalmazza a post_type, az include (a már kiválasztott tartalmak azonosítói) kulcsot, valamint a HTML-térkép rendezési beállításaiból a sort_order és a sort_column kulcsot, ha azok ki vannak töltve. A módosított tömböt kell visszaadnod.
Példa: a gyerekoldalak ne jelenjenek meg, csak a legfelső szintűek:
add_filter( 'seopress_sitemaps_html_pages_query', 'sajat_html_terkep_felso_szint', 10, 2 );function sajat_html_terkep_felso_szint( $args, $cpt_key ) { if ( 'page' === $cpt_key ) { $args['parent'] = 0; } return $args;}Mélységhatár
Szekció neve “Mélységhatár”A seopress_sitemaps_html_pages_depth_query szűrő azt adja meg, hány szintig jelenjen meg a hierarchia. Az alapérték 0: ez azt jelenti, hogy minden szint megjelenik. Egész számot kell visszaadnod: az 1 csak a legfelső szintet, a 2 a gyerekekig, és így tovább.
add_filter( 'seopress_sitemaps_html_pages_depth_query', 'sajat_html_terkep_melyseg' );function sajat_html_terkep_melyseg( $melyseg ) { return 2;}A szűrő nem típusonként, hanem az összes hierarchikus típusra egyszerre érvényes.
Készült: