Tovább a tartalomhoz

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 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.

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

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á.

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.

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 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.

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

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 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.

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

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:

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