Tovább a tartalomhoz

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.

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:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások