# Metaadat-hookok: dinamikus változók

> Hookok a dinamikus változók módosításához: egyedi mező, taxonómia, URL, kép, oldalszám, kategória, címke, WooCommerce-változók, saját változók és a kivonat hossza.

A címekben, leírásokban és közösségi metaadatokban használt dinamikus változók (például `%%post_title%%`) értékét hookokkal módosíthatod. A változók listáját és használatát a [Dinamikus változók](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/metaadatok-dinamikus-valtozok/) fejezet írja le, az egyedi mezők kezeléséről az [Egyedi mezők listája](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/metaadatok-egyedi-mezok-listaja/) fejezetben olvashatsz. 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 foglalja össze. A kódot a gyermeksablonod `functions.php` fájljába vagy egy saját bővítménybe tedd.

| Hook | Változó | Legkisebb verzió | Paraméterek |
|---|---|---|---|
| `seopress_titles_custom_field` | `%%_cf_mezőnév%%` | 6.7 | érték, a mező neve |
| `seopress_titles_user_meta` | `%%_ucf_felhasználói_meta%%` | 6.7 | érték, a meta kulcsa |
| `seopress_get_tag__ct_{$taxonomy}_value` | `%%_ct_taxonómia%%` | 3.9 | érték, környezet |
| `seopress_get_tag_post_url_value` | `%%post_url%%` | 4.0 | érték, környezet |
| `seopress_get_tag_post_thumbnail_url_value` | `%%post_thumbnail_url%%` | 3.7.8 | érték, környezet |
| `seopress_context_paged` | `%%page%%` | 3.7.7 | érték |

Mindegyik hook szűrő: megkapja a változó kiszámolt értékét, és a visszaadott szöveg kerül a metaadatba.

## Egyedi mező: `%%_cf_mezőnév%%`

A `%%_cf_%%` előtagú változó egy bejegyzés egyedi mezőjének (post meta) értékét írja ki. A `seopress_titles_custom_field` szűrő a kiszámolt értéket és a mező nevét kapja.

```php
add_filter( 'seopress_titles_custom_field', 'sajat_egyedi_mezo', 10, 2 );
function sajat_egyedi_mezo( $ertek, $mezo ) {
    if ( 'ar' === $mezo ) {
        return $ertek . ' Ft';
    }
    return $ertek;
}
```

Az érték a szűrő előtt megtisztított: a HTML és a rövidkódok kikerülnek belőle, és legfeljebb 30 szóra rövidül.

## Felhasználói meta: `%%_ucf_felhasználói_meta%%`

A `%%_ucf_%%` előtagú változó a szerző felhasználói metaadatát írja ki. A `seopress_titles_user_meta` szűrő az értéket és a meta kulcsát kapja.

```php
add_filter( 'seopress_titles_user_meta', 'sajat_felhasznaloi_meta', 10, 2 );
function sajat_felhasznaloi_meta( $ertek, $kulcs ) {
    if ( 'beosztas' === $kulcs ) {
        return strtolower( $ertek );
    }
    return $ertek;
}
```

## Egyedi taxonómia: `%%_ct_taxonómia%%`

A `%%_ct_%%` előtagú változó egy egyedi taxonómia kifejezésének nevét írja ki: az elsődleges kategóriát, ha a szerkesztő választott, ennek hiányában az első hozzárendeltet. A hook neve a taxonómia slugjától függ. Az előtag aláhúzásjelét a hook neve megtartja, ezért a hook neve `seopress_get_tag__ct_{taxonómia}_value`, két aláhúzással a `tag` után. Például a `%%_ct_category%%` változót a `seopress_get_tag__ct_category_value` szűri.

```php
add_filter( 'seopress_get_tag__ct_category_value', 'sajat_kategoria_ertek', 10, 2 );
function sajat_kategoria_ertek( $ertek, $kontextus ) {
    return mb_strtoupper( $ertek );
}
```

A régi, egy aláhúzásos névre (`seopress_get_tag_ct_category_value`) regisztrált szűrők továbbra is lefutnak, de elavultnak számítanak, ezért az új névre érdemes átírni őket. Ismeretlen taxonómia esetén az érték változatlan marad.

## Bejegyzés URL-je: `%%post_url%%`

A `seopress_get_tag_post_url_value` szűrő a bejegyzés permalinkjét és a feloldási környezetet kapja. Az érték csak egyedi (single) nézetben jön létre, más oldaltípusokon üres.

```php
add_filter( 'seopress_get_tag_post_url_value', 'sajat_post_url', 10, 2 );
function sajat_post_url( $ertek, $kontextus ) {
    return add_query_arg( 'forras', 'kereso', $ertek );
}
```

A régi `seopress_titles_post_url` szűrő elavult, az újat használd.

## Kiemelt kép URL-je: `%%post_thumbnail_url%%`

A `seopress_get_tag_post_thumbnail_url_value` szűrő a bejegyzés kiemelt képének URL-jét kapja. Így például egy tartalék képet is megadhatsz, ha nincs kiemelt kép.

```php
add_filter( 'seopress_get_tag_post_thumbnail_url_value', 'sajat_kiemelt_kep', 10, 2 );
function sajat_kiemelt_kep( $ertek, $kontextus ) {
    if ( empty( $ertek ) ) {
        return home_url( '/wp-content/uploads/alap-kep.jpg' );
    }
    return $ertek;
}
```

A régi `seopress_titles_post_thumbnail_url` szűrő elavult.

## Oldalszám: `%%page%%`

A `%%page%%` változó a lapozott oldalakon az aktuális és az összes oldal számát adja („2. oldal, összesen 5” jellegű szövegként, a webhely nyelvén), és csak a második és későbbi oldalakon ír ki valamit, az első oldalon üres. A `seopress_context_paged` szűrő ezt a szöveget módosítja (például átfogalmazza).

```php
add_filter( 'seopress_context_paged', 'sajat_oldalszam' );
function sajat_oldalszam( $szoveg ) {
    return mb_strtolower( $szoveg );
}
```

A szűrő a változót használó összes helyen érvényesül, így a címben, a leírásban és a közösségi metaadatokban is.

## Kategória és címke: `%%post_category%%` és `%%post_tag%%`

Egyedi (single) bejegyzésnél a `%%post_category%%` a bejegyzés kategóriájának nevét adja: az elsődleges kategóriát, ha van, ennek hiányában az elsőt. A `%%post_tag%%` a bejegyzés első címkéjének nevét adja. Mindkettő üres marad, ha a bejegyzésnek nincs kategóriája vagy címkéje, vagy ha nem egyedi nézeten vagy. A két szűrő az értéket és a feloldási környezetet kapja.

| Hook | Változó | Legkisebb verzió |
|---|---|---|
| `seopress_get_tag_post_category_value` | `%%post_category%%` | 3.7.2 |
| `seopress_get_tag_post_tag_value` | `%%post_tag%%` | 4.4 |

```php
add_filter( 'seopress_get_tag_post_category_value', 'sajat_kategoria', 10, 2 );
function sajat_kategoria( $ertek, $kontextus ) {
    return mb_strtoupper( $ertek );
}

add_filter( 'seopress_get_tag_post_tag_value', 'sajat_cimke', 10, 2 );
function sajat_cimke( $ertek, $kontextus ) {
    return $ertek ? $ertek : 'Általános';
}
```

A régi `seopress_titles_cat` és `seopress_titles_tag` szűrő elavult, az újakat használd.

## WooCommerce-termék kategóriái és címkéi: `%%wc_single_cat%%` és `%%wc_single_tag%%`

Termékoldalon (és csak aktív WooCommerce mellett) a `%%wc_single_cat%%` a termék kategóriáinak, a `%%wc_single_tag%%` a termék címkéinek nevét írja ki vesszővel elválasztva. A két szűrő a kész szöveget és a környezetet kapja.

| Hook | Változó | Legkisebb verzió |
|---|---|---|
| `seopress_get_tag_wc_single_cat_value` | `%%wc_single_cat%%` | 3.7.2 |
| `seopress_get_tag_wc_single_tag_value` | `%%wc_single_tag%%` | 3.7.2 |

```php
add_filter( 'seopress_get_tag_wc_single_cat_value', 'sajat_termek_kategoria', 10, 2 );
function sajat_termek_kategoria( $ertek, $kontextus ) {
    // Csak az első kategória maradjon.
    $reszek = explode( ', ', $ertek );
    return $reszek[0];
}
```

A régi `seopress_titles_product_cat` és `seopress_titles_product_tag` szűrő elavult.

## Saját változók hozzáadása és a változók tömbje

A SEOPress a dinamikus változókat két párhuzamos tömbből helyettesíti be: az egyikben a változók nevei állnak (például `%%post_title%%`), a másikban a hozzájuk tartozó értékek, azonos sorrendben. Három szűrővel nyúlhatsz bele.

| Hook | Mit kap | Legkisebb verzió |
|---|---|---|
| `seopress_titles_template_variables_array` | a változónevek tömbje | 3.6.2 |
| `seopress_titles_template_replace_array` | az értékek tömbje | 3.6.2 |
| `seopress_titles_template_variables` | az összes adat egy tömbben | 3.7.7 |

Saját globális változót úgy adhatsz a címhez és a meta leíráshoz, hogy mindkét tömbhöz hozzáadsz egy elemet. A két tömb sorrendjének egyeznie kell.

```php
add_filter( 'seopress_titles_template_variables_array', 'sajat_valtozo_nev' );
function sajat_valtozo_nev( $nevek ) {
    $nevek[] = '%%sajat_szlogen%%';
    return $nevek;
}

add_filter( 'seopress_titles_template_replace_array', 'sajat_valtozo_ertek' );
function sajat_valtozo_ertek( $ertekek ) {
    $ertekek[] = 'Kézzel készített kerámia';
    return $ertekek;
}
```

Ezután a **SEO → Titles & Metas** oldalon a címekbe és leírásokba beírhatod a `%%sajat_szlogen%%` változót.

A `seopress_titles_template_variables` szűrő az egész csomagot egyben adja át: a két tömböt és a kivonat hosszát (`seopress_excerpt_length`) is. Ha egyszerre több dolgot módosítanál, használd ezt, és a módosított csomagot add vissza.

## Kivonat hossza a metaadatokban: `seopress_excerpt_length`

Ha a metaleírás a bejegyzés elejét vagy kivonatát használja, a SEOPress alapból 50 szóig vág. A `seopress_excerpt_length` szűrő ezt a számot kapja, és a visszaadott szám lesz az új hossz. Ugyanez a szám érvényes az egyedi mezők (`%%_cf_%%`) változóira és az automatikus sémák leírására is. A szűrő 2.9-es verziótól elérhető.

```php
add_filter( 'seopress_excerpt_length', 'sajat_kivonat_hossz' );
function sajat_kivonat_hossz( $szavak ) {
    return 30;
}
```
