A WordPress fejlesztők régóta küzdenek egy alapvető problémával: nincs egységes módszer arra, hogy a rendszer képességeit felfedezhetővé és gépileg olvashatóvá tegyék. Eddig mindenki a saját módszerét használta – action hookok, globális függvények, REST végpontok, osztályok – és az eredmény egy kaotikus ökoszisztéma lett, ahol külső eszközök (beleértve az AI ügynököket) nehezen tudják feltérképezni, mit is tud valójában egy WordPress oldal.
A WordPress Core AI csapata erre a problémára adott választ az Abilities API-val.
Mi az Abilities API?
Az Abilities API egy szabványosított felület, amelyen keresztül a WordPress core, a pluginok és a témák egységesen tudják deklarálni és közzétenni a képességeiket. A lényeg: egyetlen helyen, egységes formátumban, gépileg és emberek számára is olvasható módon.
Ez nem csupán egy újabb API – ez egy paradigmaváltás abban, ahogyan a WordPress kommunikál a külvilággal.
Miért fontos ez?
Felfedezhetőség: Bármely eszköz lekérdezheti, milyen képességek érhetők el egy WordPress oldalon.
Biztonság: Minden képességhez explicit jogosultság-ellenőrzés tartozik.
Interoperabilitás: Az egységes séma lehetővé teszi, hogy különböző komponensek összetett munkafolyamatokat építsenek.
Fokozatos bevezetés: Először Composer csomagként jelenik meg, majd beépül a WordPress core-ba.
Gyakorlati példa: List All URLs plugin
Nézzünk egy egyszerű példát. Készítünk egy plugint, ami lekéri az oldal összes URL-jét.

Képesség regisztrálása
A képességeket a wp_abilities_api_init hookba kell regisztrálni a wp_register_ability() függvénnyel:
add_action( 'wp_abilities_api_init', 'list_all_urls_register_abilities' );
function list_all_urls_register_abilities() {
wp_register_ability(
'list-all-urls/urls',
array(
'label' => __( 'Get All URLs', 'list-all-urls' ),
'description' => __( 'Retrieves a list of URLs from the WordPress site.', 'list-all-urls' ),
'category' => 'site',
'input_schema' => array(
'type' => 'object',
'properties' => array(
'post_type' => array(
'type' => 'string',
'description' => 'A post típus (pl. post, page).',
),
'posts_per_page' => array(
'type' => 'integer',
'description' => 'Lekérendő bejegyzések száma. -1 = összes.',
),
'post_status' => array(
'type' => 'string',
'description' => 'Bejegyzés státusz (pl. publish, draft).',
),
'makelinks' => array(
'type' => 'boolean',
'description' => 'Kattintható linkként adja vissza?',
),
),
),
'output_schema' => array(
'type' => 'object',
'properties' => array(
'url' => array(
'type' => 'string',
'description' => 'URL vagy kattintható link'
)
)
),
'execute_callback' => 'list_all_urls_generate_url_list',
'permission_callback' => '__return_true',
)
);
}
Minden képességnek van:
- Egyedi azonosítója (
namespace/ability-nameformátum) - Címkéje és leírása
- Input és output sémája (JSON Schema)
- Kategóriája
- Végrehajtó függvénye
- Jogosultság-ellenőrző függvénye
A végrehajtó függvény
function list_all_urls_generate_url_list( array $arguments = array() ): array {
$default_args = array(
'post_type' => 'post',
'posts_per_page' => -1,
'post_status' => 'publish',
);
$args = wp_parse_args( $arguments, $default_args );
$posts = get_posts( $args );
$links = array();
foreach ( $posts as $post ) {
$permalink = get_permalink( $post );
if ( ! empty( $arguments['makelinks'] ) ) {
$links[] = '<a href="' . esc_url( $permalink ) . '">' . esc_html( $permalink ) . '</a>';
} else {
$links[] = esc_html( $permalink );
}
}
return $links;
}
Képesség végrehajtása PHP-ból
$input = array(
'post_type' => 'post',
'posts_per_page' => -1,
'post_status' => 'publish',
'makelinks' => false,
);
$ability = wp_get_ability( 'list-all-urls/urls' );
$urls = $ability->execute( $input );

REST API támogatás
Az Abilities API automatikusan elérhetővé teszi a regisztrált képességeket REST végpontokon keresztül a wp-abilities/v1 namespace alatt. Ehhez csak a show_in_rest meta értéket kell beállítani:
'meta' => array(
'show_in_rest' => true,
),
Ezután a képesség elérhető lesz REST-en:
GET /wp-json/wp-abilities/v1/abilities– összes képesség listázásaPOST /wp-json/wp-abilities/v1/abilities/{name}/execute– képesség végrehajtása
Visszafelé kompatibilitás
Ha régebbi WordPress verziókat is támogatni akarsz, érdemes ellenőrizni az API jelenlétét:
if ( function_exists( 'wp_register_ability' ) ) {
add_action( 'wp_abilities_api_init', 'my_plugin_register_abilities' );
}
// vagy
if ( class_exists( 'WP_Ability' ) ) {
add_action( 'wp_abilities_api_init', 'my_plugin_register_abilities' );
}
WordPress 6.9 és azon túl
A szerver oldali PHP funkcionalitás a WordPress 6.9-ben debütál (2025. december eleje). A JavaScript kliens egyelőre a GitHub repóban érhető el, később Gutenberg csomagként lesz terjesztve.
Az Abilities API kombinálva a WordPress MCP adapterrel lehetővé teszi, hogy AI ügynökök programozottan kommunikáljanak WordPress oldalakkal. Ez csak a kezdet – a jövőben az egész WordPress ökoszisztéma erre az alapra épülhet.
Források
- GitHub Repository
- Composer csomag:
wordpress/abilities-api - Hivatalos dokumentáció
- Make WordPress Core bejelentés
- WordPress Slack:
#core-aicsatorna
Eredeti cikk: Introducing the WordPress Abilities API – Jonathan Bossenger