# llms.txt és Content-Signal hookok

> Az llms.txt fájl tartalmának, URL-jének és a benne szereplő bejegyzéstípusoknak a módosítása, valamint a robots.txt Content-Signal értékeinek szűrése.

Ez a fejezet az `llms.txt` fájlhoz és az AI-ügynökök felé jelzett Content-Signal direktívához tartozó hookokat írja le. A fájl beállításairól az [AI-ügynök-készség és llms.txt](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/ai-agent-readiness-llms-txt/) fejezet szól; a hookok általános használatáról a [Composer és hookok használata](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/fejlesztoknek-composer-es-hookok/) fejezet.

| Hook | Típus | Legkisebb verzió | Mire jó |
|---|---|---|---|
| `seopress_llms_post_types` | szűrő (filter) | 9.7 | Mely bejegyzéstípusok szerepelnek az llms.txt-ben. |
| `seopress_llms_query_posts` | szűrő | 9.8 | Az llms.txt-be kerülő bejegyzések listája. |
| `seopress_llms_txt_file` | szűrő | 9.5 | Az elkészült llms.txt teljes tartalma. |
| `seopress_llms_placeholders_replaced` | szűrő | 9.5 | Az egyedi tartalom a helyőrzők cseréje után. |
| `seopress_llms_txt_url` | szűrő | 9.5 | Az llms.txt URL-je. |
| `seopress_default_llms_txt_content` | szűrő | 9.5 | Az automatikusan generált alapértelmezett tartalom. |
| `seopress_agent_ready_content_signal` | szűrő | 9.8 | A robots.txt-be kerülő Content-Signal értékek. |

## Az llms.txt-ben szereplő bejegyzéstípusok és bejegyzések

**Bejegyzéstípusok.** A `seopress_llms_post_types` szűrő az llms.txt-be kerülő bejegyzéstípusok neveinek tömbjét kapja. Alapértelmezés szerint minden nyilvános bejegyzéstípus benne van, kivéve a mellékleteket (`attachment`) és a SEOPress belső típusait (`seopress_404`, `seopress_schemas`, `seopress_bot`).

```php
add_filter( 'seopress_llms_post_types', function ( $post_types ) {
    // A „kapcsolat” típusú bejegyzések kimaradnak.
    return array_diff( $post_types, array( 'kapcsolat' ) );
} );
```

**Bejegyzések.** A `seopress_llms_query_posts` szűrő három paramétert kap: a már lekérdezett bejegyzések tömbjét (`WP_Post` objektumok), a lekérdezés argumentumait (a `get_posts()` paraméterei) és a nyelvkódot (`all` az összes nyelvre, a tényleges nyelvkód egy adott nyelvre, vagy az alapértelmezett nyelv). A visszaadott lista kerül a fájlba, ezért itt kiszűrhetsz bejegyzéseket, átrendezheted őket, vagy gyorsítótárba teheted az eredményt. A szűrő a helyőrzős egyedi tartalomnál és az automatikusan generált tartalomnál is lefut.

```php
add_filter( 'seopress_llms_query_posts', function ( $posts, $args, $lang ) {
    // A jelszóval védett bejegyzések ne kerüljenek a fájlba.
    return array_filter( $posts, function ( $post ) {
        return empty( $post->post_password );
    } );
}, 10, 3 );
```

Ha sok bejegyzést kérsz le a helyőrzőkkel, és a TranslatePress is aktív, a fordított bejegyzésenként több lekérdezés is futhat. Ilyenkor érdemes a `seopress_llms_query_posts` vagy a `seopress_llms_txt_file` szűrőn keresztül gyorsítótárat (átmeneti tárolót, transient) alkalmazni.

## Az llms.txt tartalmának és URL-jének módosítása

A három szűrő különböző ponton avatkozik be:

| Hook | Mikor fut le | Paraméter |
|---|---|---|
| `seopress_default_llms_txt_content` | Csak akkor, ha az automatikusan generált tartalom készül (nincs egyedi tartalom elmentve a beállításokban). | A generált szöveg. |
| `seopress_llms_placeholders_replaced` | Csak akkor, ha a beállításokban egyedi llms.txt-tartalmat mentettél, a helyőrzők cseréje után. | A helyőrzők nélküli szöveg. |
| `seopress_llms_txt_file` | Mindig, a fájl kiadása előtt, mindkét esetben. | A fájl teljes szövege. |
| `seopress_llms_txt_url` | Az llms.txt URL-jének meghatározásakor. | Az URL (alapértelmezés: a webhely főcíme + `/llms.txt`). |

Az alapértelmezett tartalom szűrője a generált szöveg végére (vagy elé) saját szakaszt tud fűzni, de az egyedi tartalmat nem érinti:

```php
add_filter( 'seopress_default_llms_txt_content', function ( $content ) {
    return $content . "\n## Kapcsolat\n\nKérdéseddel írj nekünk az info@example.com címre.\n";
} );
```

Ha mindkét esetben (generált és egyedi tartalomnál) módosítani szeretnél, használd a `seopress_llms_txt_file` szűrőt:

```php
add_filter( 'seopress_llms_txt_file', function ( $content ) {
    return $content . "\n<!-- Frissítve: " . gmdate( 'Y-m-d' ) . " -->\n";
} );
```

Az llms.txt URL-je mindig a webhely főcíme alatt van, a többnyelvű bővítmények nyelvi előtagja nélkül (hasonlóan a robots.txt-hez). A `seopress_llms_txt_url` szűrővel ezt az URL-t módosíthatod ott, ahol a SEOPress megjeleníti a fájl címét (például a beállítóoldalon és a diagnosztikában):

```php
add_filter( 'seopress_llms_txt_url', function ( $url ) {
    return 'https://www.example.com/llms.txt';
} );
```

## A Content-Signal értékek szűrése

A Content-Signal direktíva a robots.txt-ben jelzi az AI-ügynököknek, mire használhatják a tartalmadat. Az alapértékek: `search=yes` (keresés), `ai-input=yes` (az AI-válaszok forrásaként) és `ai-train=no` (modellek tanítása). A `seopress_agent_ready_content_signal` szűrő egy tömböt kap, amelynek kulcsai a jelzések nevei, értékei a `yes` vagy `no`; a visszaadott tömbből a SEOPress `kulcs=érték` párokat készít, vesszővel elválasztva.

Példa: a válaszokban való felhasználás tiltása is:

```php
add_filter( 'seopress_agent_ready_content_signal', function ( $signals ) {
    $signals['ai-input'] = 'no';
    return $signals;
} );
```

Ezzel a robots.txt-ben a `Content-Signal: search=yes, ai-input=no, ai-train=no` sor jelenik meg. Ha a robots.txt már tartalmaz `Content-Signal:` sort, a SEOPress nem fűz hozzá újat.
