# Hookok: átirányítások

> Tíz hook a SEOPress PRO átirányításaihoz: import utáni művelet, automatikus javaslatok szűrői, exportlekérdezések, számlálók leállítása és a letiltott archívumok átirányítása.

Ez a fejezet az átirányítások, a 404-figyelés és a letiltott archívumok hookjait gyűjti össze. A funkciók beállításairól az [Átirányítások](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/atiranyitasok-alapok/) és az [Átirányítások importálása CSV-ből](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/atiranyitasok-csv-import/) 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 | Típus | Legkisebb verzió | Mire jó |
|---|---|---|---|
| `seopress_redirections_imported` | művelet | 10.3 | Kód futtatása az átirányítások tömeges importja után. |
| `seopress_watch_taxonomy_for_redirects` | szűrő | 9.1 | Annak eldöntése, mely taxonómiákra készüljön automatikus átirányítási javaslat. |
| `seopress_automatic_redirect_cpt` | szűrő | 5.1 | Annak eldöntése, mely tartalomtípusokra készüljön automatikus átirányítási javaslat. |
| `seopress_post_automatic_redirect` | szűrő | 4.0 | Az automatikus átirányítási javaslatok kikapcsolása. |
| `seopress_before_redirect` | művelet | 5.3 | Kód futtatása közvetlenül az átirányítás keresése után. |
| `seopress_stop_counter_redirects` | szűrő | 7.2 | A találatszámláló növelésének leállítása. |
| `seopress_stop_last_date_request_redirects` | szűrő | 7.2 | Az utolsó kérés időpontjának mentése leállítása. |
| `seopress_export_redirections_query` | szűrő | 4.5 | Az átirányítások exportjának lekérdezése. |
| `seopress_export_404_query` | szűrő | 7.4 | A 404-es hibák exportjának lekérdezése. |
| `seopress_disable_archives_redirect_url` | szűrő | 6.5 | A letiltott szerzői és dátumos archívumok átirányításának célja. |
| `seopress_disable_archives_redirect_status` | szűrő | 6.5 | A letiltott szerzői és dátumos archívumok átirányításának állapotkódja. |

## Művelet az átirányítások importja után

A `seopress_redirections_imported` művelet akkor fut le, amikor a tömeges átirányítás-import az utolsó sort is kiírta. Paramétere nincs. Használhatod például gyorsítótár ürítésére vagy értesítés küldésére.

```php
add_action( 'seopress_redirections_imported', 'sajat_import_utan' );
function sajat_import_utan() {
    error_log( 'Az átirányítások importja befejeződött.' );
}
```

## Taxonómiák szűrése az automatikus javaslatokhoz

A SEOPress javaslatot tesz átirányításra, ha törölsz vagy átnevezel (új slugot adsz) egy kifejezést. Alapból azokat a taxonómiákat figyeli, amelyek nyilvánosak vagy nyilvánosan lekérdezhetők. A `seopress_watch_taxonomy_for_redirects` szűrő három paramétert kap: az alapértelmezett döntést (`true` vagy `false`), a taxonómia nevét és a taxonómia objektumot. Igazat visszaadva figyeli, hamisat visszaadva nem figyeli az adott taxonómiát.

```php
add_filter( 'seopress_watch_taxonomy_for_redirects', 'sajat_taxonomia_figyeles', 10, 3 );
function sajat_taxonomia_figyeles( $should_watch, $taxonomy_name, $taxonomy ) {
    // A termékcímkékre ne készüljön javaslat.
    if ( 'product_tag' === $taxonomy_name ) {
        return false;
    }
    return $should_watch;
}
```

## Tartalomtípusok szűrése az automatikus javaslatokhoz

A `seopress_automatic_redirect_cpt` szűrő a tartalomtípusok listáját kapja, azokat, amelyekre a SEOPress átirányítási javaslatot ad, ha megváltozik egy tartalom slugja vagy törlöd. A lista kulcsa a tartalomtípus neve, értéke a tartalomtípus objektuma. A SEOPress előtte már kivesz belőle néhány belső típust (például a lapszerkesztők sablonjait), a szűrővel további típusokat vehetsz ki.

```php
add_filter( 'seopress_automatic_redirect_cpt', 'sajat_tartalomtipusok' );
function sajat_tartalomtipusok( $post_types ) {
    // A termékekre ne készüljön javaslat.
    unset( $post_types['product'] );
    return $post_types;
}
```

## Az automatikus javaslatok kikapcsolása

A `seopress_post_automatic_redirect` szűrő azt dönti el, megjelenjen-e az átirányítási javaslat a slug módosítása vagy a törlés után. Ha hamisat adsz vissza, a javaslatok nem jelennek meg. A SEOPress maga is ezt teszi, ha az **SEO → PRO → Átirányítások / 404** oldalon bekapcsolod az **Értesítések letiltása slug módosításakor vagy bejegyzés / kifejezés törlésekor** beállítást.

```php
add_filter( 'seopress_post_automatic_redirect', '__return_false' );
```

## Művelet az átirányítás előtt

A `seopress_before_redirect` művelet akkor fut le, amikor a SEOPress megkereste a kért URL-hez tartozó átirányítási szabályt, de még nem hajtotta végre az átirányítást. Egy paramétert kap: a talált átirányítási bejegyzést (`WP_Post` objektum). Ha nincs találat, az érték üres, ezért ellenőrizd az `ID` meglétét.

```php
add_action( 'seopress_before_redirect', 'sajat_atiranyitas_elott' );
function sajat_atiranyitas_elott( $atiranyitas ) {
    if ( isset( $atiranyitas->ID ) ) {
        error_log( 'Átirányítás: ' . $atiranyitas->post_title );
    }
}
```

## Találatszámláló és utolsó kérés leállítása

A SEOPress minden átirányítás használatakor megnöveli a találatok számát, és elmenti az utolsó kérés idejét. Nagy forgalmú webhelyen ez sok adatbázis-írást jelent. A két szűrő külön-külön leállítja ezeket: igazat visszaadva az adott mentés elmarad.

| Szűrő | Mit állít le |
|---|---|
| `seopress_stop_counter_redirects` | A találatok számának növelését. |
| `seopress_stop_last_date_request_redirects` | Az utolsó kérés időpontjának mentését. |

```php
add_filter( 'seopress_stop_counter_redirects', '__return_true' );
add_filter( 'seopress_stop_last_date_request_redirects', '__return_true' );
```

## Az exportlekérdezések szűrése

A CSV-exportnál a SEOPress egy `WP_Query` paramétertömbbel kéri le a bejegyzéseket. Két szűrővel módosíthatod ezt a tömböt, például hogy csak egy részüket exportáld.

| Szűrő | Mit exportál alapból |
|---|---|
| `seopress_export_redirections_query` | Az átirányításokat (301, 302, 307, 410 és 451 típusúak). |
| `seopress_export_404_query` | A 404-es hibákat (azokat a bejegyzéseket, amelyekhez nincs átirányítási típus mentve). |

Mindkét szűrő a paramétertömböt kapja, és a módosított tömböt kell visszaadnod.

```php
add_filter( 'seopress_export_redirections_query', 'sajat_export_szuro' );
function sajat_export_szuro( $args ) {
    // Csak az utolsó 100 átirányítást exportáld.
    $args['posts_per_page'] = 100;
    return $args;
}
```

## Letiltott archívumok átirányítása

Ha a **SEO → Titles & Metas → Archívumok** oldalon letiltod a szerzői vagy a dátumos archívumokat, a SEOPress a főoldalra irányítja a látogatókat 301-es állapotkóddal. Két szűrővel módosíthatod ezt.

| Szűrő | Mit állít | Alapérték |
|---|---|---|
| `seopress_disable_archives_redirect_url` | Az átirányítás célját. | A webhely főoldala |
| `seopress_disable_archives_redirect_status` | Az állapotkódot. | `301` |

```php
add_filter( 'seopress_disable_archives_redirect_url', 'sajat_archivum_cel' );
function sajat_archivum_cel( $url ) {
    return home_url( '/blog/' );
}

add_filter( 'seopress_disable_archives_redirect_status', 'sajat_archivum_allapot' );
function sajat_archivum_allapot( $status ) {
    return '302';
}
```
