# Oldaltérkép-hookok: gyorsítótár, Google News, WooCommerce-kizárás és videótérkép

> Szűrő-hookok az XML-oldaltérképekhez: a gyorsítótár időtartama, a Google News kiadványneve, az elfogyott termékek kizárása és a videótérkép tartalma, valamint újragenerálása.

Ez a fejezet az XML-oldaltérképek (köztük a Google News és a videótérkép) szűrőit gyűjti össze. 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 írja le. A kódot a gyermeksablonod `functions.php` fájljába vagy egy saját bővítménybe tedd. A térképek beállításairól az [XML- és képtérkép](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/oldalterkepek-xml-es-kep-terkep/), a [Google News térkép](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/oldalterkepek-google-news/) és a [videótérkép](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/oldalterkepek-video-terkep/) fejezet szól.

| Hook | Legkisebb verzió | Mire jó |
|---|---|---|
| `seopress_sitemaps_cache_duration` | 9.3 | Az oldaltérkép lapjainak módosítási dátumait tároló gyorsítótár élettartama. |
| `seopress_sitemaps_xml_news_name` | 8.1 | A Google News térkép kiadványneve. |
| `seopress_sitemaps_single_query` | 1.0 | Egy tartalomtípus térképének lekérdezése (például az elfogyott termékek kizárása). |
| `seopress_pro_video_sitemap_content` | 6.5, 9.1 | A tartalom, amelyben a SEOPress új videót keres. |
| `seopress_pro_video_sitemap_builder_content` | 10.0 | A lapszerkesztőből (page builder) összegyűjtött kiegészítő tartalom a videókereséshez. |
| `seopress_video_regeneration_total_count_posts`, `seopress_video_regeneration_increment`, `seopress_video_regeneration_query` | 7.2 | A videótérkép újragenerálás eszköze: darabszám, lépésköz és lekérdezés. |

## A gyorsítótár időtartama

Ha egy tartalomtípusnak több lapozott térképe van (a lapokon alapból legfeljebb 1000 URL lehet), a SEOPress minden lap `lastmod` dátumát egyetlen lekérdezéssel számolja ki, és az eredményt tranziensben tárolja. A tranziens neve `seopress_sitemap_lastmod_all_<tartalomtípus>_<URL-ek száma lapon>`, az alapértelmezett élettartama 12 óra.

A `seopress_sitemaps_cache_duration` szűrő ezt az időtartamot adja át másodpercben. Visszatérési értéknek másodpercben megadott számot adj vissza.

```php
add_filter( 'seopress_sitemaps_cache_duration', 'sajat_terkep_gyorsitotar' );
function sajat_terkep_gyorsitotar( $masodperc ) {
    // 1 óra a 12 helyett.
    return HOUR_IN_SECONDS;
}
```

Rövidebb időtartamnál a lapozott térképek dátumai hamarabb frissülnek, de gyakrabban fut a nagyobb lekérdezés. Hosszabb időtartamnál ritkábban, de a `lastmod` értékek később követik a változásokat.

## A Google News kiadványneve

A Google News térkép minden bejegyzése tartalmazza a kiadvány nevét, amit a Google News térkép beállításainál adtál meg. A `seopress_sitemaps_xml_news_name` szűrő ezt a szöveget adja át (a SEOPress már XML-biztossá tette), és szöveget kell visszaadnod. Hasznos, ha például nyelvenként vagy tartalomtípusonként más nevet szeretnél.

```php
add_filter( 'seopress_sitemaps_xml_news_name', 'sajat_hirek_neve' );
function sajat_hirek_neve( $nev ) {
    return 'Minta Hírportál';
}
```

## Elfogyott WooCommerce-termékek kizárása a térképből

A `seopress_sitemaps_single_query` szűrő egy tartalomtípus térképének `get_posts()` lekérdezési paramétereit adja át. Két paramétert kap:

| Paraméter | Jelentése |
|---|---|
| `$args` | A lekérdezés paramétereinek tömbje. |
| `$path` | A tartalomtípus azonosítója (például `product`, `page`). |

Visszatérési értéknek a módosított tömböt add vissza. A SEOPress is ezen a szűrőn át veszi ki a WooCommerce kosár, pénztár és fiók oldalait, ha ezeknél bekapcsoltad a noindex jelölést.

Az elfogyott termékek kizárása:

```php
add_filter( 'seopress_sitemaps_single_query', 'sajat_elfogyott_kizarasa', 10, 2 );
function sajat_elfogyott_kizarasa( $args, $path ) {
    if ( 'product' === $path ) {
        $args['meta_query'][] = array(
            'key'     => '_stock_status',
            'value'   => 'outofstock',
            'compare' => '!=',
        );
    }
    return $args;
}
```

Ugyanígy szűkítheted más feltétellel is a térképet: a `$args` tömbben a `get_posts()` bármelyik paramétere módosítható. A beépített tömb alapból a `posts_per_page`, `offset`, `order`, `orderby`, `post_type`, `post_status`, `lang` és `has_password` kulcsokat tartalmazza, termékeknél pedig egy `tax_query` is van benne, amely kiveszi a katalógusból kizárt termékeket. Ezért a `tax_query` és a `meta_query` kulcsokhoz hozzáadj (`[]`), ne felülírd őket.

## A videótérkép tartalma

A videótérkép (és a videó séma automatikus kitöltése) a bejegyzés tartalmában keres YouTube-videókat.

- **`seopress_pro_video_sitemap_content`**: a keresett tartalmat adja át szövegként, a bejegyzés azonosítójával együtt (`$content`, `$post_id`). Visszatérési értéknek a kiegészített vagy átírt szöveget add vissza. Mivel a videótérkép és a videó séma ugyanazt a keresést használja, a módosításod mindkettőre érvényes.
- **`seopress_pro_video_sitemap_builder_content`**: a lapszerkesztőkből (page builderekből) összegyűjtött kiegészítő tartalmat adja át (`$buffer`, `$post_id`), amelyet a SEOPress a bejegyzés tartalmához fűz. Ezzel olyan szerkesztő támogatását adhatod hozzá, amelyet a SEOPress alapból nem ismer.

```php
add_filter( 'seopress_pro_video_sitemap_content', 'sajat_video_tartalom', 10, 2 );
function sajat_video_tartalom( $tartalom, $bejegyzes_id ) {
    // Egyéni mezőben tárolt videólink hozzáadása a kereséshez.
    $link = get_post_meta( $bejegyzes_id, 'sajat_video_url', true );
    if ( $link ) {
        $tartalom .= ' ' . $link;
    }
    return $tartalom;
}
```

## A videótérkép újragenerálás eszköze

A videótérkép beállításainál lévő újragenerálás eszköz a bejegyzéseket kis csomagokban dolgozza fel. Három szűrővel igazíthatod:

| Hook | Paraméterek | Mire jó |
|---|---|---|
| `seopress_video_regeneration_total_count_posts` | `$total_count_posts` | Az összes feldolgozandó bejegyzés száma (egész szám). Az eszköz a bejegyzéseket a `pending`, `draft`, `publish` és `future` állapotok szerint számolja. |
| `seopress_video_regeneration_increment` | `$increment` | Hány bejegyzést dolgoz fel egy lépésben (alapérték: 10). |
| `seopress_video_regeneration_query` | `$args`, `$increment`, `$cpt`, `$offset` | A `get_posts()` lekérdezés paraméterei: tartalomtípusok, állapotok, eltolás. |

Mindegyik a módosított értéket várja vissza. Gyenge tárhelyen csökkentheted a lépésközt, erősebben növelheted.

```php
add_filter( 'seopress_video_regeneration_increment', 'sajat_video_lepeskoz' );
function sajat_video_lepeskoz( $lepeskoz ) {
    return 5;
}
```

Ha a lekérdezésből szűrsz ki bejegyzéseket, a darabszámot is igazítsd hozzá a `seopress_video_regeneration_total_count_posts` szűrővel, hogy az eszköz a végén megálljon.
