# Oldaltérkép-hookok: a HTML-térkép címei, dátuma, termékkategóriái és hierarchiája

> Szűrő-hookok a HTML-webhelytérképhez: bejegyzéscím, dátumformátum, kategóriák neve és kimenete, a termékkategória azonosítója és az egyéni tartalomtípusok hierarchikus megjelenítése.

Ez a fejezet a látogatóknak szánt HTML-térkép szűrőit gyűjti össze. A térkép 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, 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.

| Hook | Legkisebb verzió | Mire jó |
|---|---|---|
| `seopress_sitemaps_html_post_title` | 7.2 | Egy elem címének módosítása. |
| `seopress_sitemaps_html_post_date_format` | 7.8 | Az elemek után megjelenő dátum formátuma. |
| `seopress_sitemaps_html_display_terms_only` | 8.9 | Csak a kategóriák listázása a tartalmak nélkül. |
| `seopress_sitemaps_html_term_name` | 8.9 | A kategória nevének módosítása a csak-kategória listában. |
| `seopress_sitemaps_html_terms_output` | 8.9 | A csak-kategória lista kész HTML-je. |
| `seopress_sitemaps_html_product_cat_slug` | 6.9 | A termékek csoportosításához használt taxonómia azonosítója. |
| `seopress_sitemaps_html_hierarchical_terms_query`, `seopress_sitemaps_html_hierarchical_tax_query` | 7.0 | Egyéni tartalomtípus hierarchikus megjelenítése egyéni taxonómia szerint. |

## Az elemek címe

A `seopress_sitemaps_html_post_title` szűrő minden listaelem címét átadja szövegként (alapból a bejegyzés címe). Visszatérési értéknek a megjelenítendő szöveget add vissza. Figyelem: a kimenet nincs külön escape-elve, ezért a visszaadott szöveget te biztosítsd.

```php
add_filter( 'seopress_sitemaps_html_post_title', 'sajat_terkep_cim' );
function sajat_terkep_cim( $cim ) {
    // Rövidítés 60 karakterre.
    return wp_trim_words( $cim, 10, '…' );
}
```

## A dátum formátuma

Ha a térképen nem kapcsoltad ki a közzétételi dátum megjelenítését, az minden cím után látszik, alapból `j F Y` formátumban (például 5 november 2026). A `seopress_sitemaps_html_post_date_format` szűrő ezt a PHP dátumformátumot adja át; szöveget kell visszaadnod.

```php
add_filter( 'seopress_sitemaps_html_post_date_format', 'sajat_terkep_datum' );
function sajat_terkep_datum( $formatum ) {
    return 'Y. m. d.';
}
```

## Csak a kategóriák listázása

A `[seopress_html_sitemap]` shortcode egy `terms_only` attribútumot is ismer (alapból kikapcsolt), amellyel a tartalmak helyett csak a kategóriák listája jelenik meg. Három szűrő igazítja a kimenetet:

| Szűrő | Paraméterek | Mit ad vissza |
|---|---|---|
| `seopress_sitemaps_html_display_terms_only` | `$terms_only`, `$cpt_key` | Igaz/hamis érték: tartalomtípusonként dönthetsz, hogy csak a kategóriák látszanak-e. |
| `seopress_sitemaps_html_term_name` | `$nev`, `$term` | A kategória megjelenítendő neve (szöveg). |
| `seopress_sitemaps_html_terms_output` | `$html`, `$terms`, `$cpt_key` | A kész lista HTML-je. |

A kategóriák listája egy `sp-wrap-terms` osztályú elemben, `sp-list-terms` osztályú felsorolásként jelenik meg, a listaelemek `sp-term-item` osztállyal.

```php
// A termékeknél csak a kategóriák látszanak.
add_filter( 'seopress_sitemaps_html_display_terms_only', 'sajat_csak_kategoria', 10, 2 );
function sajat_csak_kategoria( $csak_kategoria, $cpt_key ) {
    return 'product' === $cpt_key ? true : $csak_kategoria;
}

// A kategórianév mögé a bejegyzések száma.
add_filter( 'seopress_sitemaps_html_term_name', 'sajat_kategoria_nev', 10, 2 );
function sajat_kategoria_nev( $nev, $term ) {
    return $nev . ' (' . $term->count . ')';
}
```

## A termékkategória azonosítója

A HTML-térkép a WooCommerce termékeit a `product_cat` taxonómia kategóriái szerint csoportosítja. Ha a webhelyed másik taxonómiát használ, a `seopress_sitemaps_html_product_cat_slug` szűrő az alapértéket (`product_cat`) adja át, és a taxonómia azonosítóját kell visszaadnod.

```php
add_filter( 'seopress_sitemaps_html_product_cat_slug', 'sajat_termek_taxonomia' );
function sajat_termek_taxonomia( $taxonomia ) {
    return 'sajat_termek_kategoria';
}
```

## Egyéni tartalomtípus hierarchikus megjelenítése

A beépített csoportosítás csak a bejegyzéseket (kategóriák szerint) és a termékeket (termékkategóriák szerint) ismeri. Egyéni tartalomtípust egyéni taxonómia szerint két szűrővel csoportosíthatsz, ha a **Disable hierarchy** kapcsoló ki van kapcsolva. Mindkettő első paramétere a tartalomtípus azonosítója (`$cpt_key`), és a visszaadott érték lesz a szűrő eredménye.

1. A `seopress_sitemaps_html_hierarchical_terms_query` (paraméterek: `$cpt_key`, `$args_cat_query`) azt adja vissza, mely kifejezések legyenek a csoportcímek. Add vissza a `get_terms()` eredményét.
2. A `seopress_sitemaps_html_hierarchical_tax_query` (paraméterek: `$cpt_key`, `$cat`, `$args`) azt adja vissza, mely tartalmak kerüljenek az adott csoportba. Add vissza a `tax_query` tömböt a `$cat` kifejezéssel.

```php
add_filter( 'seopress_sitemaps_html_hierarchical_terms_query', 'sajat_csoportok', 10, 2 );
function sajat_csoportok( $cpt_key, $args_cat_query ) {
    if ( 'konyv' !== $cpt_key ) {
        return array();
    }
    $args_cat_query['taxonomy'] = 'mufaj';
    return get_terms( $args_cat_query );
}

add_filter( 'seopress_sitemaps_html_hierarchical_tax_query', 'sajat_csoport_tartalma', 10, 3 );
function sajat_csoport_tartalma( $cpt_key, $cat, $args ) {
    if ( 'konyv' !== $cpt_key ) {
        return array();
    }
    return array(
        array(
            'taxonomy' => 'mufaj',
            'field'    => 'term_id',
            'terms'    => $cat->term_id,
        ),
    );
}
```

Itt a `konyv` tartalomtípus és a `mufaj` taxonómia csak példa, a sajátodét írd be. Mivel a szűrők minden egyéni tartalomtípusra lefutnak, a nem érintett típusoknál üres tömböt adj vissza, így azoknál nincs csoportosítás.
