AI hookok: generálás, utasítások, kérések és MCP
A SEOPress AI-funkcióinak hookjai: kép-metaadatok szűrése mentés előtt, a promptok és az egyedi utasítások módosítása, a generálás jogosultsága, az AI-asszisztens HTTP-kérései és az MCP-szerver csak olvasható módja.
Ez a fejezet a SEOPress AI-funkcióihoz tartozó hookokat írja le. A hookok használatának általános szabályait (hova másold a kódot, mit ellenőrizz előtte) a Composer és hookok használata fejezet tartalmazza. Az említett funkciókról az AI-metaadatok generálása, az AI-képek metaadatai, az AI-asszisztens és az MCP-szerver fejezet szól.
| Hook | Típus | Legkisebb verzió | Mire jó |
|---|---|---|---|
seopress_update_alt |
szűrő (filter) | 7.1 | Az AI által generált alternatív szöveg módosítása mentés előtt. |
seopress_update_caption |
szűrő | 9.6 | Az AI által generált képaláírás módosítása mentés előtt. |
seopress_update_description |
szűrő | 9.6 | Az AI által generált képleírás módosítása mentés előtt. |
seopress_ai_{provider}_image_meta |
szűrő | 9.6 | A képek metaadatainak generálásához küldött prompt módosítása. |
seopress_ai_{provider}_custom_instructions |
szűrő | 10.1 | Az AI-nak küldött egyedi utasítások módosítása. |
seopress_ai_generation_user_can |
szűrő | 10.1 | Annak eldöntése, hogy az adott felhasználó használhatja-e az AI-generálást. |
seopress_ai_assistant_request_args |
szűrő | 10.0 | Az AI-asszisztens HTTP-kérésének paraméterei. |
seopress_mcp_read_only |
szűrő | 10.3 | Az MCP-szerver kényszerítése csak olvasható módra. |
Az AI által generált kép-metaadatok szűrése mentés előtt
Szekció neve “Az AI által generált kép-metaadatok szűrése mentés előtt”Amikor a SEOPress AI-val generál egy képhez alternatív szöveget, képaláírást vagy leírást, a kapott értéket három szűrőn engeded át, mielőtt elmenti. Mindegyik két paramétert kap: a szűrendő szöveget és a kép (melléklet) azonosítóját.
| Hook | Hova kerül a mentett érték |
|---|---|
seopress_update_alt |
A kép alternatív szövegébe. |
seopress_update_caption |
A kép képaláírásába (a melléklet kivonatába). |
seopress_update_description |
A kép leírásába (a melléklet tartalmába). |
A szűrő előtt a SEOPress már megtisztította a szöveget: az alt és a képaláírás sima szöveg, a leírásból csak a WordPress által engedélyezett HTML-címkék maradnak meg. A szűrő csak akkor fut le, ha az AI az adott mezőhöz kapott értéket.
Példa: az alt szöveg végére odafűzzük a webhely nevét, a képaláírást pedig nagybetűvel kezdjük:
add_filter( 'seopress_update_alt', function ( $alt, $attachment_id ) { return $alt . ' | ' . get_bloginfo( 'name' );}, 10, 2 );
add_filter( 'seopress_update_caption', function ( $caption, $attachment_id ) { return ucfirst( $caption );}, 10, 2 );A képek metaadataihoz küldött prompt módosítása
Szekció neve “A képek metaadataihoz küldött prompt módosítása”A seopress_ai_{provider}_image_meta szűrő azt a szöveget (promptot) kapja meg, amelyet a SEOPress az AI-nak küld, amikor a kép metaadatait kéri. A szűrő két paramétere: a prompt és a kép azonosítója. A módosított prompt kerül elküldésre; a válasz JSON-formátumára vonatkozó utasítást a SEOPress a szűrő után fűzi hozzá, ezért azt nem kell (és nem is érdemes) átírnod.
A {provider} helyére a használt AI-szolgáltató azonosítója kerül:
| Szolgáltató | Hook neve |
|---|---|
| SEOPress AI | seopress_ai_seopress_image_meta |
| OpenAI | seopress_ai_openai_image_meta |
| DeepSeek | seopress_ai_deepseek_image_meta |
| Google Gemini | seopress_ai_gemini_image_meta |
| Mistral | seopress_ai_mistral_image_meta |
| Claude | seopress_ai_claude_image_meta |
Példa: azt kéred az OpenAI-tól, hogy az alt szöveg mindig a „Minta Bolt” termékeire utaljon:
add_filter( 'seopress_ai_openai_image_meta', function ( $prompt, $attachment_id ) { return $prompt . "\nA képek a Minta Bolt termékeit mutatják, ezt vedd figyelembe a leírásban.";}, 10, 2 );Ha több szolgáltatót is használsz, vagy bármikor váltani szeretnél közöttük, ugyanazt a függvényt több hookra is felveheted.
Az AI-nak küldött egyedi utasítások módosítása
Szekció neve “Az AI-nak küldött egyedi utasítások módosítása”A SEOPress beállításaiban megadhatsz webhelyszintű egyedi utasítást (például hangnemet vagy stílust), amelyet a cím- és leírásgenerálás promptjai külön üzenetként megkapnak. A seopress_ai_{provider}_custom_instructions szűrő ezt az utasítást adja át módosításra. Két paramétere: az aktuális utasítás szövege és a bejegyzés azonosítója (ha a generálás nem köthető konkrét bejegyzéshez, az értéke 0).
A {provider} ugyanazokat az értékeket veszi fel, mint az előző szakaszban: seopress, openai, deepseek, gemini, mistral, claude.
Példa: bejegyzéstípustól függő utasítás, például a termékeknél tömör leírást kérsz:
add_filter( 'seopress_ai_openai_custom_instructions', function ( $instructions, $post_id ) { if ( $post_id && 'product' === get_post_type( $post_id ) ) { $instructions .= ' A leírás legyen tömör, és említse a termék legfontosabb tulajdonságát.'; } return $instructions;}, 10, 2 );Ha a szűrő üres szöveget ad vissza, az egyedi utasítás nem kerül a kérésbe.
Ki használhatja az AI-generálást
Szekció neve “Ki használhatja az AI-generálást”A SEOPress a beállításokban szerepkör szerint is korlátozza az AI-generálást (az adminisztrátorokat soha nem korlátozza). A seopress_ai_generation_user_can szűrő ennél finomabb szabályokat tesz lehetővé: a kapott igen/nem értéket (true vagy false) felülbírálhatod, például bejegyzéstípus vagy funkció szerint. A szűrő három paramétert kap:
| Paraméter | Jelentése |
|---|---|
$allowed |
Az eddigi döntés: true, ha a felhasználó (a szerepkör-beállítás szerint) használhatja az AI-t. |
$post_id |
A szerkesztett bejegyzés (vagy kategória) azonosítója, ha van; egyébként null. |
$context |
Melyik felületről van szó (lásd a táblázatot). |
A $context lehetséges értékei:
| Érték | Felület |
|---|---|
metabox |
A SEO-metabox AI-gombjai a bejegyzés vagy kategória szerkesztőjében. |
social |
A közösségi metaadatok generálása. |
bulk |
Tömeges AI-műveletek és az AI-hoz kapcsolódó adminisztrációs oldalak. |
auto_publish |
A metaadatok automatikus generálása közzétételkor. |
image_meta |
A képek metaadatainak generálása. |
upload |
Képfeltöltéskor futó AI-generálás. |
chat |
Az AI-asszisztens. |
ability |
Az AI-képességek (Abilities) hívásai. |
Példa: csak a „Szerkesztő” szerepkör használhatja a közzétételkori automatikus generálást, minden más felületre az eddigi szabályok érvényesek:
add_filter( 'seopress_ai_generation_user_can', function ( $allowed, $post_id, $context ) { if ( 'auto_publish' === $context && ! current_user_can( 'edit_others_posts' ) ) { return false; } return $allowed;}, 10, 3 );Az AI-asszisztens HTTP-kérésének módosítása
Szekció neve “Az AI-asszisztens HTTP-kérésének módosítása”Az seopress_ai_assistant_request_args szűrő az AI-asszisztens minden, az AI-szolgáltatóhoz küldött HTTP-kérésének paramétereit (a WordPress wp_remote_post() függvényének argumentumait) átadja módosításra. Két paramétert kap: a kérés argumentumainak tömbjét és a szolgáltató azonosítóját ($provider).
Az argumentumtömb tipikusan ezeket tartalmazza: body (a JSON-ként kódolt kérés), timeout (alapértelmezés szerint 120 másodperc), redirection, httpversion, blocking és headers (köztük az API-kulcsot hordozó fejléc). Fontos, hogy az API-kulcs ebben a tömbben van, ezért a naplózást vagy a hibakeresést úgy írd meg, hogy a fejléceket ne mentsd el.
Példa: lassú kapcsolat esetén a várakozási idő növelése csak az OpenAI-nál:
add_filter( 'seopress_ai_assistant_request_args', function ( $args, $provider ) { if ( 'openai' === $provider ) { $args['timeout'] = 180; } return $args;}, 10, 2 );Az MCP-szerver kényszerítése csak olvasható módra
Szekció neve “Az MCP-szerver kényszerítése csak olvasható módra”A seopress_mcp_read_only szűrő az egész webhelyre érvényes, csak olvasható módot kapcsol be az MCP-szerveren: ilyenkor minden kapcsolat csak az olvasó eszközöket éri el, az író eszközöket nem. A szűrő egy logikai értéket kap (azt, hogy az adott kapcsolat az engedélyezett hatókör miatt már eleve csak olvasható-e), és ha true-t adsz vissza, a kérés csak olvashat.
A szűrő csak szűkíteni tud: azt, amit a kapcsolat engedélye eleve csak olvashatóvá tett, nem teheti írhatóvá. Ez tehát egy webhelyszintű padló az egyes kapcsolatok beállítása alatt.
add_filter( 'seopress_mcp_read_only', '__return_true' );Egy környezethez kötött változat, például csak éles webhelyen legyen csak olvasható:
add_filter( 'seopress_mcp_read_only', function ( $read_only ) { return 'production' === wp_get_environment_type() ? true : $read_only;} );Készült: