# 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](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/fejlesztoknek-composer-es-hookok/) 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](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/hook-terkep-xml-es-video-hookok/), a [HTML-térkép hookjai](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/hook-terkep-html-terkep-hookok/), az [XSL, URL és egyéb hookok](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/hook-terkep-xsl-url-es-egyeb/) és a [térképindex, lapozás és kész XML hookjai](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/hook-terkep-index-es-lapozas/) 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

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](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/oldalterkepek-xml-es-kep-terkep/) fejezet szól.

### 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:

```php
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:

```php
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

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.

```php
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

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é:

```php
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

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.

```php
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](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/hook-terkep-index-es-lapozas/) fejezetben).

## 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](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/oldalterkepek-kizaras-es-tagok/) fejezet szól.

### 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:

```php
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:

```php
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

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

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:

```php
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](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/hook-terkep-index-es-lapozas/) 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

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](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/oldalterkepek-html-terkep/) fejezet szól.

### 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:

```php
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:

```php
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

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:

```php
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

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.

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