# Hookok: webhelyellenőrzés, törött linkek és 404-figyelés

> Nyolc hook a SEOPress PRO webhelyellenőrzéséhez, a törött linkek keresőjéhez és a 404-figyeléshez: lefutás utáni műveletek, lekérdezések szűrői, a kizárt URL-ek és a robotok listája.

Ez a fejezet a webhelyellenőrzés (**SEO → Audit**), a törött linkek keresője (**SEO → Törött linkek**) és a 404-figyelés (**SEO → PRO → Átirányítások / 404**) 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/), a [Törött linkek](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/atiranyitasok-hibas-linkek/) és a [Webhelyellenőrzés](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/atiranyitasok-webhelyaudit/) 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_broken_links_after_scan` | művelet | 9.8 | Kód futtatása, amikor a törött linkek keresése végzett. |
| `seopress_after_create_404` | művelet | 8.8 | Kód futtatása egy új 404-es hiba naplózása után. |
| `seopress_site_audit_after_processs` | művelet | 8.3 | Kód futtatása, amikor a webhelyellenőrzés végzett. |
| `seopress_site_audit_query` | szűrő | 8.2 | A webhelyellenőrzés tartalomlekérdezésének módosítása. |
| `seopress_404_cleaning_query` | szűrő | 3.1 | A régi 404-es naplóbejegyzéseket törlő időzített feladat lekérdezésének módosítása. |
| `seopress_bot_query` | szűrő | 3.6.4, 7.2 | A törött linkeket kereső feladat lekérdezésének módosítása. |
| `seopress_404_exclude` | szűrő | 3.2 | URL-ek kizárása a 404-figyelésből. |
| `seopress_404_bots` | szűrő | 3.0 | A 404-figyelésből kizárt robotok listájának módosítása. |

## Művelet a törött linkek keresése után

A `seopress_broken_links_after_scan` művelet akkor fut le, amikor a törött linkek keresése az összes tartalmon végigért, és a SEOPress elmentette a keresés időpontját. Paramétere nincs. A SEOPress ezt használja az értesítő e-mail elküldésére is, te is erre kapaszkodhatsz, például egy saját értesítéshez.

```php
add_action( 'seopress_broken_links_after_scan', 'sajat_toro_linkek_utan' );
function sajat_toro_linkek_utan() {
    // Például bejegyzés a naplóba.
    error_log( 'A törött linkek keresése befejeződött.' );
}
```

## Művelet új 404-es hiba után

A `seopress_after_create_404` művelet minden olyan alkalommal lefut, amikor a SEOPress egy még nem látott URL-hez új 404-es naplóbejegyzést hoz létre. Egyetlen paramétert kap: az új bejegyzés azonosítóját. Ha az URL már szerepel a naplóban, a SEOPress csak a számlálót növeli, és ez a művelet nem fut le.

```php
add_action( 'seopress_after_create_404', 'sajat_uj_404_utan' );
function sajat_uj_404_utan( $id ) {
    // Az új 404-es naplóbejegyzés URL-je (a bejegyzés címe).
    error_log( 'Új 404: ' . get_the_title( $id ) );
}
```

## Művelet a webhelyellenőrzés után

A `seopress_site_audit_after_processs` (a név végén három „s” van) akkor fut le, amikor a webhelyellenőrzés az összes tartalmat feldolgozta. Paramétere nincs. A telepített bővítményben ez a hook elavultként van megjelölve, helyette a `seopress_site_audit_after_process` név (két „s”-sel) az újabb. Mindkettő ugyanakkor lefut, ezért új kódhoz az újabb nevet használd.

```php
add_action( 'seopress_site_audit_after_process', 'sajat_audit_utan' );
function sajat_audit_utan() {
    // Például a gyorsítótár ürítése az ellenőrzés után.
    error_log( 'A webhelyellenőrzés befejeződött.' );
}
```

## A webhelyellenőrzés lekérdezésének szűrése

A `seopress_site_audit_query` szűrő a `get_posts()` lekérdezés paramétereit adja át, még mielőtt a webhelyellenőrzés a következő köteg tartalmat lekérné. Öt értéket kap:

| Paraméter | Jelentése |
|---|---|
| `$args` | A lekérdezés paramétereinek tömbje (`posts_per_page`, `offset`, `post_type`, `post_status`, `fields`). |
| `$batch_size` | Egy köteg mérete. |
| `$offset` | Honnan folytatja a feldolgozást. |
| `$cpt` | A vizsgált tartalomtípus. |
| `$cpt_status` | A vizsgált állapotok. |

Visszatérési értéknek a módosított `$args` tömböt add vissza.

```php
add_filter( 'seopress_site_audit_query', 'sajat_audit_lekerdezes', 10, 5 );
function sajat_audit_lekerdezes( $args, $batch_size, $offset, $cpt, $cpt_status ) {
    // Például a 12-es kategória tartalmait ne ellenőrizze.
    $args['category__not_in'] = array( 12 );
    return $args;
}
```

## A 404-naplót takarító feladat lekérdezésének szűrése

Ha a 404-es naplók automatikus törlése be van kapcsolva, egy időzített feladat törli azokat a naplóbejegyzéseket, amelyek egy hónapnál régebbiek, és amelyekhez nincs átirányítás beállítva. A `seopress_404_cleaning_query` szűrő ennek a `WP_Query` lekérdezésnek a paramétereit adja át. Alapértelmezés szerint a bejegyzés típusa `seopress_404`, a feltétel pedig az, hogy a bejegyzés egy hónapnál régebbi legyen. Visszatérési értéknek a módosított tömböt add vissza.

```php
add_filter( 'seopress_404_cleaning_query', 'sajat_404_takaritas' );
function sajat_404_takaritas( $args ) {
    // Csak a három hónapnál régebbi bejegyzéseket töröld.
    $args['date_query'] = array(
        array(
            'column' => 'post_date_gmt',
            'before' => '3 months ago',
        ),
    );
    return $args;
}
```

## A törött linkeket kereső feladat lekérdezésének szűrése

A `seopress_bot_query` szűrő a törött linkek keresője által lekért tartalmak `get_posts()` paramétereit adja át. Három értéket kap: a paraméterek tömbjét (`posts_per_page`, `offset`, `post_type`, `post_status`, `orderby`, `order`, `fields`, `cache_results`), az aktuális eltolást és a vizsgált tartalomtípust. Alapból csak a közzétett tartalmak szerepelnek, dátum szerint csökkenő sorrendben. Visszatérési értéknek a módosított tömböt add vissza.

```php
add_filter( 'seopress_bot_query', 'sajat_torott_link_lekerdezes', 10, 3 );
function sajat_torott_link_lekerdezes( $args, $offset, $cpt ) {
    // A legrégebbi tartalmak kerüljenek előre.
    $args['order'] = 'ASC';
    return $args;
}
```

## URL-ek kizárása a 404-figyelésből

A `seopress_404_exclude` szűrő azoknak az URL-részleteknek a tömbjét adja át, amelyekre a SEOPress nem naplóz 404-es hibát. Alapból két elem van benne: `wp-content/cache` és `^purge/`. A **SEO → PRO → Átirányítások / 404** oldalon megadott kizárt útvonalak is ide kerülnek. A mintákat a SEOPress a kérés URL-jéhez (a webhely címe nélküli részhez) hasonlítja:

| Minta | Mikor egyezik |
|---|---|
| Ponttal kezdődik (például `.js`) | Az URL erre a végződésre ér véget. A kis- és nagybetű nem számít. |
| `^` jellel kezdődik (például `^purge/`) | Az URL ezzel kezdődik. A `^` után álló kezdő perjel nem számít. |
| Bármi más | Az URL bárhol tartalmazza a szöveget. |

Visszatérési értéknek a kiegészített tömböt add vissza.

```php
add_filter( 'seopress_404_exclude', 'sajat_404_kizarasok' );
function sajat_404_kizarasok( $kizart ) {
    $kizart[] = '^api/';      // Az „api/” kezdetű kérések.
    $kizart[] = '.map';       // A „.map” végű fájlok.
    $kizart[] = 'ideiglenes'; // Bármi, ami tartalmazza a „ideiglenes” szöveget.
    return $kizart;
}
```

## A 404-figyelésből kizárt robotok listája

A SEOPress nem naplózza a robotoktól érkező 404-es hibákat. A `seopress_404_bots` szűrő azt a reguláris kifejezést adja át, amellyel a böngésző azonosítóját (user agent) összeveti. Szöveget kapsz (a `/…/i` formában megírt kifejezést), és ugyanilyen szöveget kell visszaadnod. Ha a visszaadott érték üres, a SEOPress semmit nem tekint robotnak, így minden kérés naplózódik.

```php
add_filter( 'seopress_404_bots', 'sajat_robotok' );
function sajat_robotok( $regex ) {
    // Egy saját figyelő robot hozzáadása a listához.
    return str_replace( '/bot|', '/bot|sajatfigyelo|', $regex );
}
```
