# Képhookok: fájlnév-tisztítás, automatikus cím, alt szöveg és képattribútumok

> Szűrők a feltöltött képek fájlnevének tisztításához, az automatikus képcím és alt szöveg előállításához, valamint a célkulcsszavas alt szöveghez.

Ez a fejezet a SEOPress képekkel kapcsolatos szűrőit gyűjti össze. Két beállításcsoporthoz kapcsolódnak, amelyeket a **SEO → Advanced** oldal **Image SEO** fülén találsz (lásd a [képek SEO-optimalizálásáról szóló fejezetet](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/metaadatok-media-es-hibaelharitas/)):

- a **Cleaning media filename** kapcsoló a feltöltött fájl nevét tisztítja meg;
- az **Image Title**, **Image Alt text** és a hozzájuk tartozó kapcsolók a feltöltött kép címét, alt szövegét, feliratát és leírását töltik ki automatikusan.

![Az Image SEO fül beállításai](./kepek/metaadatok-media-kepek.webp)

*Az Image SEO fül beállításai* (https://minta-bolt.hu/wp-admin/admin.php?page=seopress-advanced)

A képen a fájlnév-tisztítás és az automatikus képattribútumok kapcsolói látszanak. A fejezet hookjai csak akkor futnak le, ha a hozzájuk tartozó kapcsoló be van kapcsolva. 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 | Típus | Legkisebb verzió | Mire jó |
|---|---|---|---|
| `seopress_image_seo_before_cleaning` | szűrő | 6.3 | A fájlnév módosítása a tisztítás előtt. |
| `seopress_image_seo_clean_input` | szűrő | 6.3 | A tisztítás során lecserélendő karakterek (minták) listája. |
| `seopress_image_seo_clean_output` | szűrő | 6.3 | A lecserélendő karakterek helyére kerülő karakterek listája. |
| `seopress_image_seo_after_cleaning` | szűrő | 6.3 | A fájlnév módosítása a tisztítás után. |
| `seopress_auto_image_title` | szűrő | 3.4 | A feltöltéskor automatikusan képzett képcím (alt szöveg, felirat, leírás alapja) módosítása. |
| `seopress_auto_image_attr` | szűrő | 3.4 | A kép címének, feliratának és leírásának tömbje, mielőtt a SEOPress elmenti. |
| `seopress_auto_image_alt_target_kw` | szűrő | 4.5 | A célkulcsszóból képzett alt szöveg módosítása. |

## A fájlnév tisztítása: négy szűrő

Amikor a **Cleaning media filename** be van kapcsolva, a SEOPress a WordPress `sanitize_file_name` szűrőjén keresztül tisztítja a feltöltött fájl nevét. A folyamat sorrendje:

1. `seopress_image_seo_before_cleaning`: megkapja az eredeti fájlnevet.
2. A SEOPress UTF-8-ra kényszeríti a nevet, majd a karakterlista alapján lecseréli az ékezetes és különleges karaktereket (például az `á` `a` lesz, a `©` pedig `copy`). A cserélendő karakterek listáját a `seopress_image_seo_clean_input`, a helyettük beírt karaktereket a `seopress_image_seo_clean_output` szűrő adja át.
3. A kérdőjelek törlődnek, a betűk kisbetűsek lesznek.
4. `seopress_image_seo_after_cleaning`: megkapja a megtisztított nevet.

Mindegyik szűrő a módosított értéket adja vissza.

### Fájlnév módosítása a tisztítás előtt vagy után

A tisztítás előtt például a fájlnév elejére tehetsz egy előtagot, vagy kicserélhetsz benne egy szót:

```php
add_filter( 'seopress_image_seo_before_cleaning', 'sajat_fajlnev_tisztitas_elott' );
function sajat_fajlnev_tisztitas_elott( $filename ) {
    return str_replace( 'IMG_', 'foto-', $filename );
}
```

A tisztítás után a már kisbetűs, ékezet nélküli nevet egészítheted ki:

```php
add_filter( 'seopress_image_seo_after_cleaning', 'sajat_fajlnev_tisztitas_utan' );
function sajat_fajlnev_tisztitas_utan( $filename ) {
    return 'minta-' . $filename;
}
```

### A cserélendő karakterek bővítése

A két szűrő tömbje párban működik: a `clean_input` tömb n-edik eleme (reguláris kifejezés, perjelek között) a `clean_output` tömb n-edik elemére cserélődik. Ha új karaktert adsz hozzá, mindkét szűrőben ugyanabba a pozícióba tedd, különben a párosítás elcsúszik. Példa: a `@` jel lecserélése `-` jelre:

```php
add_filter( 'seopress_image_seo_clean_input', 'sajat_tisztitando_karakterek' );
function sajat_tisztitando_karakterek( $karakterek ) {
    $karakterek[] = '/@/';
    return $karakterek;
}

add_filter( 'seopress_image_seo_clean_output', 'sajat_csere_karakterek' );
function sajat_csere_karakterek( $csere ) {
    $csere[] = '-';
    return $csere;
}
```

Ha mindkét tömbhöz a végére fűzöl, a pozíciók egyeznek.

## Automatikus képcím, alt szöveg, felirat és leírás

Ha az **Image Title**, **Image Alt text**, felirat vagy leírás automatikus kitöltése be van kapcsolva, a SEOPress minden feltöltött képhez kiszámít egy szöveget, és beírja a bekapcsolt mezőkbe. A szöveg forrása a kép fájlneve (pontosabban a kép címe), WooCommerce-termékhez csatolt képnél a termék címe. A kötőjelek, aláhúzásjelek és a felesleges szóközök szóközzé alakulnak, a szöveg pedig kisbetűs lesz.

### `seopress_auto_image_title`

A szűrő a kiszámított szöveget módosíthatod, mielőtt a SEOPress beírná a mezőkbe. A szűrő négy paramétert kap: a szöveget, a szülő bejegyzés típusát, a szülő bejegyzés azonosítóját és a kép azonosítóját. Ez a szöveg kerül a címbe, az alt szövegbe, a feliratba és a leírásba is, amelyik be van kapcsolva. Példa: az első betű nagybetűssé tétele:

```php
add_filter( 'seopress_auto_image_title', 'sajat_kepcim', 10, 4 );
function sajat_kepcim( $szoveg, $tipus, $szulo_id, $kep_id ) {
    return ucfirst( $szoveg );
}
```

### `seopress_auto_image_attr`

A szűrő tömböt kap, amely a mentendő adatokat tartalmazza: az `ID` a kép azonosítója, a `post_title`, `post_excerpt` (felirat) és `post_content` (leírás) pedig csak akkor szerepel benne, ha a megfelelő kapcsoló be van kapcsolva. Ezt a tömböt kell visszaadnod. Példa: a felirat kiegészítése egy szöveggel:

```php
add_filter( 'seopress_auto_image_attr', 'sajat_kepattributumok' );
function sajat_kepattributumok( $adatok ) {
    if ( isset( $adatok['post_excerpt'] ) ) {
        $adatok['post_excerpt'] .= ' (fotó: Minta Kft.)';
    }
    return $adatok;
}
```

Az alt szöveg külön tárolódik, ezért az nem része ennek a tömbnek: azt a `seopress_auto_image_title` szűrő értéke határozza meg.

A két szűrő akkor is lefut, ha az alt szövegeket tömeges művelettel állítod be a médiatárban.

## Alt szöveg a célkulcsszóból: `seopress_auto_image_alt_target_kw`

Az **Alt from target keywords** kapcsoló a frontenden azokhoz a képekhez, amelyeknek nincs alt szövege, a bejegyzés célkulcsszavát írja be. A szűrő a kulcsszót kapja meg, és a módosított szöveget kell visszaadnod. Példa: a kulcsszó kiegészítése a webhely nevével:

```php
add_filter( 'seopress_auto_image_alt_target_kw', 'sajat_alt_kulcsszo' );
function sajat_alt_kulcsszo( $kulcsszo ) {
    return $kulcsszo . ' - Minta Bolt';
}
```

Ha a szűrő üres szöveget ad vissza, a kép alt szövege üresen marad.
