Abilities API u WordPressu: šta je i zašto te se tiče

Plavi element slagalice iznad belih elemenata, simbol povezivanja delova WordPress sajta

Ako si u poslednje vreme čitao changelog WordPressa ili bar pratio šta pričaju developeri, naleteo si na izraz "Abilities API" i verovatno pomislio: to je neka stvar za AI entuzijaste, ne za mene. Razumem tu reakciju, ali ona je delimično pogrešna. Abilities API nije AI funkcija. To je uređen način da sajt kaže šta sve zna da uradi, i da to kaže na isti način svakome ko pita: pluginu, temi, spoljnom alatu ili, da, AI asistentu.

U ovom tekstu dobijaš objašnjenje bez žargona: šta je to, kako izgleda iznutra, kako se vidi spolja i zašto bi te zanimalo čak i ako Claude i ChatGPT nikad ne priključiš na svoj sajt.

Problem koji Abilities API rešava

Zamisli sajt sa WooCommerce-om, plugin za SEO, plugin za formu, plugin za rezervacije i par sopstvenih dodataka. Svaki od njih ume da radi nešto korisno: da napravi porudžbinu, da izmeni meta opis, da pošalje upit, da otkaže termin. Ali svaki to radi na svoj način. Jedan ima REST rutu, drugi AJAX akciju, treći samo funkciju koju možeš da pozoveš iz PHP-a ako znaš kako se zove.

Kad spolja želiš da saznaš šta sajt sve ume, nemaš gde da pogledaš. Nema jednog spiska. Moraš da čitaš dokumentaciju svakog plugina ponaosob, i to samo ako je uopšte napisana.

Abilities API je zamišljen kao taj jedan spisak. Prema zvaničnoj dokumentaciji, to je API za registrovanje i otkrivanje pojedinačnih delova funkcionalnosti sajta, koji se zovu "abilities" (sposobnosti). Svaka ima definisane ulaze, izlaze i dozvole. Registar je centralan, pa ga mogu da pitaju pluginovi, teme i spoljni sistemi, uključujući AI agente. API je deo WordPressa od verzije 6.9, a najava na Make WordPress Core blogu izašla je 10. novembra 2025.

Kako izgleda jedna sposobnost

Evo kako to ide, bez kopiranja koda. Svaka sposobnost ima ime u formatu namespace/ability-name, na primer moj-plugin/broj-objava. Prvi deo je obično ime plugina, drugi je ime radnje. Time se izbegava da se dva plugina sudare oko istog naziva.

Pored imena, svaka sposobnost nosi sledeće:

  • Labelu i opis, čitljive i čoveku i mašini. Opis nije ukras: onaj ko čita spisak treba da razume šta sposobnost radi bez otvaranja koda.
  • Kategoriju. Svaka sposobnost pripada tačno jednoj kategoriji, a kategorije se registruju posebno.
  • Ulaznu i izlaznu šemu u JSON Schema formatu. To je ugovor: šta sposobnost prima, šta vraća, koja polja su obavezna, koje su dozvoljene vrednosti.
  • Funkciju koja izvršava posao (execute callback).
  • Funkciju koja proverava dozvolu (permission callback). Ovo je možda najvažniji deo, o njemu ćemo još.
  • Meta podatke, među kojima je i to da li je sposobnost vidljiva kroz REST.

Registracija ide kroz funkcije wp_register_ability_category() i wp_register_ability(), i to na kukama wp_abilities_api_categories_init i wp_abilities_api_init. Ako pišeš sopstveni plugin ili održavaš tuđi, ovo je deo koji te se tiče. Ako nisi developer, dovoljno je da znaš da to postoji i da ga plugini sve češće koriste.

Kako se to vidi spolja

Ovde postaje zanimljivo za svakoga ko drži sajt. Sposobnosti mogu da se izlože kroz REST API pod namespace-om wp-abilities/v1. Zvanična dokumentacija navodi ove krajnje tačke:

  • lista svih sposobnosti: GET na /wp-json/wp-abilities/v1/abilities
  • lista kategorija: GET na /wp-json/wp-abilities/v1/categories
  • jedna sposobnost: GET na /wp-json/wp-abilities/v1/{namespace}/{ability}
  • izvršavanje: GET, POST ili DELETE na .../{namespace}/{ability}/run

Metoda zavisi od prirode sposobnosti. Ona koja samo čita podatke ide preko GET-a, ona koja nešto menja preko POST-a, a ona koja nešto briše preko DELETE-a. Ta priroda se opisuje beleškama u meta podacima: readonly, destructive i idempotent. Uz njih može da stoji i polje instructions, običan tekst o tome kako da se sposobnost koristi.

Dva detalja koja štite tvoj sajt, a lako se previde. Prvo, sposobnost se ne vidi kroz REST dok joj se eksplicitno ne uključi show_in_rest. Podrazumevano je isključeno i traženje takve sposobnosti vraća grešku rest_ability_not_found. Drugo, svi ovi endpointi traže prijavljenog korisnika. Zvanična preporuka za pristup spolja su Application Passwords, a pored njih rade kolačići za isti domen i prilagođeni autentifikacioni pluginovi.

Gde tu uskače AI

Sad može da se razume zašto se Abilities API stalno pominje uz AI. Ako AI asistent treba da radi nešto na tvom sajtu, mora negde da pročita šta mu je dozvoljeno i kako da to pozove. Abilities API je upravo taj popis: ime, opis, ulaz, izlaz. Kod WordPressa 7.0 to je dobilo i JavaScript paket, a AI deo jezgra (AI Client i Connectors) opisali smo u tekstu o tome šta se menja sa AI-jem u jezgru WordPressa.

Most prema asistentima kao što je Claude je zaseban plugin, MCP Adapter. On uzima registrovane sposobnosti i izlaže ih kao alate koje MCP klijent može da pozove. MCP Adapter nije deo jezgra i zahteva WordPress 6.9 ili noviji i PHP 7.4 ili noviji. Njemu ćemo posvetiti poseban tekst, a ovde je dovoljno da zapamtiš lanac: plugin registruje sposobnost, Abilities API je čini vidljivom, a adapter je daje asistentu.

Zašto bi te zanimalo čak i bez AI-ja

Možda ni ne planiraš da pustiš AI na sajt, i to je sasvim razumna odluka. Evo zašto Abilities API ipak vredi da razumeš.

Plugini će se oslanjati jedni na druge preko jasnih ugovora. Umesto da jedan plugin kopa po internim funkcijama drugog, može da pozove registrovanu sposobnost sa poznatom šemom. To znači manje lomljenja posle ažuriranja, što je jedan od najčešćih razloga za nered na sajtovima koji se godinama nadograđuju.

Dobijaš ugrađen popis onoga što tvoj sajt ume. Kad preuzmeš tuđi sajt ili ga predaješ klijentu, lista sposobnosti je brži uvid u to šta je sve instalirano i izloženo nego čitanje koda. Za sve koji se bave tim poslom, ovo se uklapa u redovno održavanje WordPress sajta.

Dozvole postaju eksplicitne. Svaka sposobnost ima sopstvenu proveru ko sme da je izvrši. Pored provere uloge korisnika, to je dodatna brava. Ako koristiš pluginove koji registruju sposobnosti, vredi znati da je to mesto gde se odlučuje šta spoljni alat sme da uradi.

Pomaže ti da napišeš bolji sopstveni kod. Ako praviš funkcionalnost za klijenta, sposobnost sa dobrom šemom i opisom je dokumentacija koja se ne zaboravlja: ona živi u samom kodu.

Šta se ne menja samo od sebe

Da ne bude zabune, nekoliko stvari koje Abilities API ne radi:

  • Ne otvara tvoj sajt nikome. Bez show_in_rest sposobnost nije vidljiva spolja, a i kad jeste, traži se prijavljen korisnik.
  • Ne ubrzava i ne usporava sajt sam po sebi. Registar je mala struktura u memoriji. Ako ti sajt kasni, uzrok je negde drugde, a prvo mesto za proveru je broj PHP workera i opterećenje koje oni nose.
  • Ne daje ti nijednu sposobnost unapred. Sve što postoji na tvom sajtu registruju jezgro, plugini i teme koje ti sam instaliraš. Dokumentacija i najava prikazuju primere iz plugina, ne spisak ugrađenih sposobnosti, pa nemoj da računaš na to da je neka tu dok je ne vidiš na listi.

Kako da proveriš šta tvoj sajt izlaže

Najjednostavniji test traje minut. Prijavi se na sajt, pa u istom pregledaču otvori adresu tvojsajt.rs/wp-json/wp-abilities/v1/abilities. Ako vidiš JSON sa listom, to je to što tvoj sajt trenutno izlaže prijavljenom korisniku. Ako je lista prazna, nijedan plugin nije uključio sposobnosti za REST, što je potpuno uobičajeno stanje. Ako dobiješ grešku da ruta ne postoji, proveri verziju WordPressa, jer API traži 6.9 ili novije.

Za spoljni pristup koristi Application Password napravljen za posebnog korisnika sa minimalnim ulogama, nikad svoj glavni administratorski nalog. Dobra navika je da taj korisnik ima samo ono što je neophodno, pa i ako se lozinka negde zagubi, šteta je ograničena.

Šta to znači za izbor hostinga

Sposobnosti same po sebi ne troše mnogo, ali pozivi spolja jesu zahtevi kao i svi drugi. Ako ih šalje automatizacija ili asistent, svaki zauzima PHP proces dok traje, i na slabom paketu to se oseti baš onda kad ti sajt već ima dovoljno posla. Zato je pre bilo kakvog povezivanja korisno da znaš koliko procesa i memorije tvoj paket zaista daje. Svi limiti su javni na stranici sa specifikacijama paketa, a ako te zanima kako se brzina uklapa u celu priču, pogledaj brz WordPress hosting. Ako tek biraš osnovu, WordPress hosting je mesto odakle da kreneš.

Kratak rezime

Abilities API je zajednički katalog onoga što tvoj WordPress sajt ume da uradi, sa jasnim ulazima, izlazima i dozvolama. Stigao je u WordPress 6.9, ne radi ništa sam od sebe i ne izlaže sajt dok to neko ne uključi. AI je samo jedan od mogućih korisnika tog kataloga, i to preko dodatnog plugina. Pravi dobitak je u tome što pluginovi i alati dobijaju zajednički jezik, a ti dobijaš bolji uvid u svoj sajt.

Sledeći korak je da pogledaš šta tvoj sajt izlaže, da proveriš da su dozvole onakve kakve želiš i da, ako ti to zatreba, tek tada razmišljaš o povezivanju sa asistentom.

Ako te zanima šta se dešava sa druge strane, kad sposobnosti sajta stignu do AI asistenta, pročitaj i MCP na WordPressu bez žargona.

Ako već imaš stari plugin wordpress-mcp, kako da pređeš na zvanični adapter opisali smo u tekstu Automattic gasi wordpress-mcp.

Pročitaj i ovo

Prelaziš kod nas? Migracija je besplatna.

Naši eksperti će potpuno besplatno prebaciti tvoj postojeći sajt na naše servere.