Lewati ke konten utama

Referensi Abilities

Abilities adalah aksi atomik yang dapat dipanggil oleh Gratis AI Agent pada instalasi WordPress Anda. Setiap ability adalah class PHP terdaftar yang mengekspos skema JSON — agent membaca skema ini saat runtime untuk memahami parameter apa yang diperlukan dan apa yang dikembalikan oleh ability tersebut.

Halaman ini mendokumentasikan semua abilities yang disertakan dengan Gratis AI Agent v1.9.0.


Jenis Post Kustom

Abilities ini mengelola jenis post kustom (CPT) yang didaftarkan melalui agent. Pendaftaran disimpan ke tabel opsi WordPress sehingga tetap bertahan setelah plugin dinonaktifkan dan diaktifkan kembali.

register_post_type

Mendaftarkan jenis post kustom baru.

Parameter

ParameterTypeRequiredDescription
slugstringYesKunci jenis post (maks 20 karakter, tanpa huruf besar, tanpa spasi)
singular_labelstringYesNama tunggal yang mudah dibaca manusia, mis. Portfolio Item
plural_labelstringYesNama jamak yang mudah dibaca manusia, mis. Portfolio Items
publicbooleanNoApakah jenis post dapat diakses publik. Default true
supportsarrayNoFitur yang didukung: title, editor, thumbnail, excerpt, comments, revisions, custom-fields. Default ["title","editor"]
has_archivebooleanNoApakah halaman arsip jenis post diaktifkan. Default false
menu_iconstringNoClass Dashicons atau URL untuk ikon menu admin. Default "dashicons-admin-post"
rewrite_slugstringNoSlug URL untuk jenis post. Default ke slug

Contoh

{
"slug": "portfolio",
"singular_label": "Portfolio Item",
"plural_label": "Portfolio Items",
"public": true,
"supports": ["title", "editor", "thumbnail"],
"has_archive": true,
"menu_icon": "dashicons-portfolio"
}

Mengembalikan { "success": true, "slug": "portfolio" }


list_post_types

Mengembalikan semua jenis post kustom yang didaftarkan oleh agent.

Parameter — tidak ada

Mengembalikan

{
"post_types": [
{
"slug": "portfolio",
"singular_label": "Portfolio Item",
"plural_label": "Portfolio Items",
"public": true
}
]
}

delete_post_type

Membatalkan pendaftaran jenis post kustom yang sebelumnya didaftarkan oleh agent. Post yang sudah ada dari jenis tersebut tetap berada di database tetapi tidak lagi dapat diakses melalui jenis post tersebut.

Parameter

ParameterTypeRequiredDescription
slugstringYesKunci jenis post yang akan dihapus

Mengembalikan { "success": true, "slug": "portfolio" }


Taksonomi Kustom

Abilities ini mengelola taksonomi kustom. Seperti CPT, pendaftaran taksonomi disimpan secara persisten.

register_taxonomy

Mendaftarkan taksonomi kustom baru.

Parameter

ParameterTypeRequiredDescription
slugstringYesKunci taksonomi (maks 32 karakter)
singular_labelstringYesNama tunggal yang mudah dibaca manusia, mis. Project Category
plural_labelstringYesNama jamak yang mudah dibaca manusia, mis. Project Categories
post_typesarrayYesSlug jenis post yang harus dilampiri taksonomi ini
hierarchicalbooleanNotrue untuk gaya kategori, false untuk gaya tag. Default true
publicbooleanNoApakah term dapat diakses publik. Default true
rewrite_slugstringNoSlug URL untuk taksonomi. Default ke slug

Contoh

{
"slug": "project-category",
"singular_label": "Project Category",
"plural_label": "Project Categories",
"post_types": ["portfolio"],
"hierarchical": true
}

Mengembalikan { "success": true, "slug": "project-category" }


list_taxonomies

Mengembalikan semua taksonomi kustom yang didaftarkan oleh agent.

Parameter — tidak ada

Mengembalikan

{
"taxonomies": [
{
"slug": "project-category",
"singular_label": "Project Category",
"post_types": ["portfolio"],
"hierarchical": true
}
]
}

delete_taxonomy

Membatalkan pendaftaran taksonomi kustom yang sebelumnya didaftarkan oleh agent.

Parameter

ParameterTypeRequiredDescription
slugstringYesKunci taksonomi yang akan dihapus

Mengembalikan { "success": true, "slug": "project-category" }


Sistem Desain

Abilities sistem desain memodifikasi tampilan visual situs WordPress — dari CSS kustom hingga pola blok dan logo situs.

inject_custom_css

Menambahkan CSS ke <head> situs melalui wp_add_inline_style. CSS disimpan dalam opsi gratis_ai_agent_custom_css dan di-dequeue dengan bersih saat ability direset.

Parameter

ParameterTypeRequiredDescription
cssstringYesCSS valid untuk disuntikkan
labelstringNoLabel yang mudah dibaca manusia untuk blok CSS ini, digunakan dalam log debug. Default "agent-injected"
replacebooleanNoJika true, mengganti semua CSS yang sebelumnya disuntikkan. Default false (menambahkan)

Contoh

{
"css": ":root { --primary: #1a1a2e; --accent: #e94560; } body { font-family: 'Inter', sans-serif; }",
"label": "brand-colours",
"replace": false
}

Mengembalikan { "success": true, "bytes": 96 }


add_block_pattern

Mendaftarkan pola blok yang dapat digunakan kembali di pustaka pola WordPress.

Parameter

ParameterTypeRequiredDescription
slugstringYesPengidentifikasi pola, mis. gratis/hero-dark
titlestringYesNama pola yang mudah dibaca manusia yang ditampilkan di editor
contentstringYesMarkup blok terserialisasi (HTML) untuk pola
categoriesarrayNoSlug kategori pola, mis. ["featured", "hero"]
descriptionstringNoDeskripsi singkat yang ditampilkan di pemilih pola
keywordsarrayNoKata kunci pencarian

Mengembalikan { "success": true, "slug": "gratis/hero-dark" }


list_block_patterns

Mencantumkan semua pola blok yang didaftarkan oleh agent.

Parameter — tidak ada

Mengembalikan

{
"patterns": [
{
"slug": "gratis/hero-dark",
"title": "Dark Hero",
"categories": ["hero"]
}
]
}

Mengatur logo situs WordPress ke ID lampiran tertentu atau URL gambar jarak jauh. Ketika URL diberikan, gambar diunduh dan diimpor ke Media Library.

Parameter

ParameterTipeWajibDeskripsi
attachment_idintegerTidakID dari lampiran Media Library yang sudah ada
urlstringTidakURL gambar jarak jauh untuk diimpor dan ditetapkan sebagai logo

Salah satu dari attachment_id atau url harus diberikan.

Mengembalikan { "success": true, "attachment_id": 42 }


apply_theme_json_preset

Menerapkan preset warna/tipografi bernama ke theme.json (atau global-styles) milik tema aktif. Preset adalah paket terkurasi yang dikelola oleh tim Gratis AI Agent.

Parameter

ParameterTipeWajibDeskripsi
presetstringYaNama preset, mis. minimal-dark, warm-editorial, corporate-blue
mergebooleanTidakJika true, gabungkan dengan nilai yang sudah ada alih-alih mengganti. Default false

Preset yang tersedia

PresetDeskripsi
minimal-darkLatar belakang hampir hitam, teks putih, satu warna aksen
warm-editorialLatar belakang putih hangat, heading serif, warna aksen bernuansa bumi
corporate-bluePalet biru navy dan putih dengan tipografi profesional
vibrant-startupGradasi cerah, sudut membulat, jenis huruf sans-serif modern
classic-blogAbu-abu netral, tinggi baris nyaman, spasi tata letak tradisional

Mengembalikan { "success": true, "preset": "minimal-dark" }


Gaya Global

Kemampuan Gaya Global membaca dan menulis nilai theme.json melalui API Gaya Global WordPress, memengaruhi semua blok dan templat di seluruh situs.

get_global_styles

Mengembalikan konfigurasi gaya global saat ini.

Parameter

ParameterTipeWajibDeskripsi
pathstringTidakPointer JSON ke nilai tertentu, mis. /color/palette atau /typography/fontSizes. Mengembalikan seluruh objek jika dihilangkan.

Mengembalikan objek gaya global lengkap atau nilai pada path.


set_global_styles

Memperbarui satu atau lebih nilai dalam konfigurasi gaya global.

Parameter

ParameterTipeWajibDeskripsi
pathstringYaPointer JSON ke nilai yang akan diatur, mis. /color/palette
valueanyYaNilai baru

Contoh — tambahkan warna ke palet

{
"path": "/color/palette",
"value": [
{ "slug": "primary", "color": "#1a1a2e", "name": "Primary" },
{ "slug": "accent", "color": "#e94560", "name": "Accent" }
]
}

Mengembalikan { "success": true, "path": "/color/palette" }


reset_global_styles

Mengatur ulang semua perubahan gaya global yang diterapkan agen, memulihkan default tema.

Parameter — tidak ada

Mengembalikan { "success": true }


Kemampuan Menu Navigasi membuat dan mengelola menu navigasi WordPress beserta itemnya.

create_menu

Membuat menu navigasi WordPress baru.

Parameter

ParameterTipeWajibDeskripsi
namestringYaNama menu, mis. Primary Navigation
locationstringTidakLokasi tema untuk menetapkan menu ini, mis. primary

Mengembalikan { "success": true, "menu_id": 7 }


update_menu

Mengganti nama menu atau menetapkannya kembali ke lokasi tema.

Parameter

ParameterTipeWajibDeskripsi
menu_idintegerYaID menu yang akan diperbarui
namestringTidakNama menu baru
locationstringTidakLokasi tema untuk ditetapkan atau ditetapkan ulang

Mengembalikan { "success": true, "menu_id": 7 }


add_menu_item

Menambahkan item ke menu navigasi yang sudah ada.

Parameter

ParameterTipeWajibDeskripsi
menu_idintegerYaID menu target
typestringYaTipe item: custom, post_type, atau taxonomy
titlestringTidakLabel untuk item menu (wajib untuk tipe custom)
urlstringTidakURL untuk item custom
object_idintegerTidakID pos atau ID term untuk item post_type/taxonomy
parent_idintegerTidakID item menu untuk menempatkan item ini di bawahnya
positionintegerTidakPosisi berbasis nol dalam menu

Mengembalikan { "success": true, "item_id": 12 }


remove_menu_item

Menghapus item dari menu navigasi.

Parameter

ParameterTipeWajibDeskripsi
item_idintegerYaID item menu yang akan dihapus

Mengembalikan { "success": true, "item_id": 12 }


list_menus

Mencantumkan semua menu navigasi WordPress, termasuk lokasi tema yang ditetapkan.

Parameter — tidak ada

Mengembalikan

{
"menus": [
{
"menu_id": 7,
"name": "Primary Navigation",
"location": "primary",
"item_count": 5
}
]
}

Manajemen Opsi

Kemampuan Opsi membaca dan menulis opsi WordPress melalui get_option / update_option. Daftar blokir keamanan bawaan mencegah modifikasi tidak disengaja pada pengaturan kritis.

get_option

Membaca opsi WordPress.

Parameter

ParameterTipeWajibDeskripsi
option_namestringYaKunci opsi, mis. blogname

Mengembalikan { "option_name": "blogname", "value": "My Site" }

Mengembalikan kesalahan jika option_name ada dalam daftar blokir keamanan.


set_option

Menulis opsi WordPress.

Parameter

ParameterTipeWajibDeskripsi
option_namestringYaKunci opsi
valueanyYaNilai baru (diserialisasi otomatis untuk array/objek)
autoloadstringTidak"yes" atau "no". Default mempertahankan pengaturan autoload yang sudah ada

Mengembalikan error jika option_name ada dalam safety blocklist.

Mengembalikan { "success": true, "option_name": "blogname" }


delete_option

Menghapus sebuah opsi WordPress.

Parameter

ParameterTipeWajibDeskripsi
option_namestringYaKunci opsi yang akan dihapus

Mengembalikan error jika option_name ada dalam safety blocklist.

Mengembalikan { "success": true, "option_name": "my_custom_option" }


list_options

Mencantumkan opsi WordPress yang cocok dengan pola.

Parameter

ParameterTipeWajibDeskripsi
patternstringTidakPola SQL LIKE untuk memfilter nama opsi, mis. gratis_%. Mengembalikan semua opsi jika dihilangkan (gunakan dengan hati-hati pada database besar).
limitintegerTidakJumlah maksimum hasil. Default 50, maks 500

Mengembalikan

{
"options": [
{ "option_name": "gratis_ai_agent_version", "autoload": "yes" }
],
"total": 1
}

Manajemen Konten

Kemampuan Manajemen Konten membuat dan mengedit postingan serta halaman WordPress. ID postingan dikembalikan sehingga langkah berikutnya dalam rencana multi-kemampuan dapat merujuk konten yang dibuat.

create_post

Membuat postingan WordPress baru, halaman, atau entri tipe postingan kustom.

Parameter

ParameterTipeWajibDeskripsi
titlestringYaJudul postingan
contentstringTidakIsi postingan — menerima teks biasa, HTML, atau markup blok terserialisasi
statusstringTidakdraft, publish, pending, private. Default draft
post_typestringTidakSlug tipe postingan, mis. post, page, atau CPT terdaftar apa pun. Default post
excerptstringTidakRingkasan singkat yang ditampilkan di arsip dan hasil pencarian
categoriesarrayTidakArray nama atau ID kategori untuk ditetapkan
tagsarrayTidakArray nama atau ID tag untuk ditetapkan
authorintegerTidakID pengguna WordPress untuk ditetapkan sebagai penulis postingan. Default ke pengguna saat ini
datestringTidakTanggal publikasi dalam format ISO 8601, mis. 2026-05-01T09:00:00
page_templatestringTidakFile template untuk ditetapkan ke postingan atau halaman ini, mis. page-full-width.php. Hanya bermakna ketika post_type adalah page atau CPT yang mendukung template halaman.

Contoh

{
"title": "Welcome to Our New Site",
"content": "<!-- wp:paragraph --><p>Hello world!</p><!-- /wp:paragraph -->",
"status": "publish",
"post_type": "page",
"page_template": "page-full-width.php"
}

Mengembalikan { "success": true, "post_id": 42, "permalink": "https://example.com/welcome/" }


update_post

Memperbarui postingan atau halaman WordPress yang sudah ada.

Parameter

ParameterTipeWajibDeskripsi
post_idintegerYaID postingan yang akan diperbarui
titlestringTidakJudul postingan baru
contentstringTidakIsi postingan baru
statusstringTidakStatus baru: draft, publish, pending, private
excerptstringTidakKutipan baru
categoriesarrayTidakGanti seluruh daftar kategori dengan array nama atau ID ini
tagsarrayTidakGanti seluruh daftar tag dengan array nama atau ID ini
page_templatestringTidakFile template baru untuk ditetapkan ke postingan atau halaman ini, mis. page-full-width.php. Berikan string kosong untuk menghapus penetapan template dan kembali ke default theme.

Contoh — ubah template setelah pembuatan

{
"post_id": 42,
"page_template": "page-full-width.php"
}

Mengembalikan { "success": true, "post_id": 42 }


batch_create_posts

Membuat beberapa postingan dalam satu pemanggilan kemampuan, mengurangi perjalanan bolak-balik selama pembuatan situs atau impor konten massal. Postingan dibuat secara berurutan; jika salah satu gagal, yang lain tetap dilanjutkan dan kegagalan dilaporkan dalam array hasil.

Parameter

ParameterTipeWajibDeskripsi
postsarrayYaArray objek postingan, masing-masing menerima parameter yang sama seperti create_post
stop_on_errorbooleanTidakJika true, hentikan pemrosesan setelah kegagalan pertama. Default false

Contoh

{
"posts": [
{
"title": "About Us",
"post_type": "page",
"status": "publish",
"page_template": "page-full-width.php"
},
{
"title": "Services",
"post_type": "page",
"status": "publish"
},
{
"title": "Contact",
"post_type": "page",
"status": "publish"
}
]
}

Mengembalikan

{
"created": 3,
"failed": 0,
"results": [
{ "success": true, "post_id": 42, "title": "About Us" },
{ "success": true, "post_id": 43, "title": "Services" },
{ "success": true, "post_id": 44, "title": "Contact" }
]
}

set_featured_image

Menetapkan gambar unggulan (thumbnail postingan) ke postingan atau halaman yang sudah ada. Menerima ID lampiran Media Library yang sudah ada atau URL gambar jarak jauh; ketika URL diberikan, gambar diunduh dan diimpor secara otomatis.

Parameter

ParameterTipeWajibDeskripsi
post_idintegerYaID postingan atau halaman yang akan diperbarui
attachment_idintegerTidakID lampiran Media Library yang sudah ada
urlstringTidakURL gambar jarak jauh untuk diimpor dan ditetapkan sebagai gambar unggulan
alt_textstringTidakTeks alt untuk diterapkan pada lampiran jika diimpor dari URL

Salah satu dari attachment_id atau url harus disediakan.

Mengembalikan { "success": true, "post_id": 42, "attachment_id": 17 }


create_contact_form

Membuat formulir kontak menggunakan plugin formulir aktif (Contact Form 7, WPForms, Fluent Forms, atau Gravity Forms, tergantung yang terinstal). Mengembalikan shortcode yang dapat disematkan di postingan atau halaman apa pun.

Parameter

ParameterTipeWajibDeskripsi
titlestringYaNama formulir yang ditampilkan di admin plugin formulir
fieldsarrayYaDaftar terurut field formulir (lihat objek Field di bawah)
recipientstringTidakAlamat email untuk menerima pengiriman. Default ke email admin WordPress
subjectstringTidakBaris subjek email. Mendukung placeholder [your-name] dan [your-subject] saat menggunakan Contact Form 7
confirmation_messagestringTidakPesan yang ditampilkan setelah pengiriman berhasil. Default: "Thank you for your message. We'll be in touch soon."

Objek Field

KeyTipeWajibDeskripsi
namestringYaNama field internal / kunci mesin
labelstringYaLabel yang mudah dibaca manusia yang ditampilkan pada formulir
typestringYatext, email, tel, textarea, select, checkbox, radio, file, date
requiredbooleanTidakApakah field harus diisi sebelum pengiriman. Default false
optionsarrayTidakOpsi untuk field select, checkbox, dan radio
placeholderstringTidakTeks placeholder untuk input tipe teks

Contoh

{
"title": "Restaurant Booking Enquiry",
"fields": [
{ "name": "your-name", "label": "Name", "type": "text", "required": true },
{ "name": "your-email", "label": "Email", "type": "email", "required": true },
{ "name": "party-size", "label": "Party size", "type": "select", "options": ["1–2", "3–5", "6–10", "10+"] },
{ "name": "your-message", "label": "Special requests", "type": "textarea", "required": false }
],
"recipient": "[email protected]",
"subject": "New booking enquiry from [your-name]"
}

Mengembalikan

{
"success": true,
"form_id": 3,
"shortcode": "[contact-form-7 id=\"3\" title=\"Restaurant Booking Enquiry\"]"
}

Tinjauan Visual

Kemampuan Tinjauan Visual memungkinkan agen mengambil tangkapan layar halaman live dan menganalisisnya, memungkinkan tinjauan desain otonom, perbandingan sebelum/sesudah, dan pemeriksaan regresi visual tanpa memerlukan ekstensi browser apa pun.

capture_screenshot

Mengambil tangkapan layar halaman WordPress pada URL tertentu menggunakan browser headless sisi server. Gambar disimpan ke Media Library dan URL CDN dikembalikan.

Parameter

ParameterTipeWajibDeskripsi
urlstringYaURL lengkap halaman yang akan ditangkap layarnya, mis. https://example.com/about/
widthintegerTidakLebar viewport dalam piksel. Default 1280
heightintegerTidakTinggi viewport dalam piksel. Default 800
full_pagebooleanTidakTangkap seluruh halaman yang dapat di-scroll, bukan hanya viewport. Default false
delay_msintegerTidakMilidetik untuk menunggu setelah halaman dimuat sebelum menangkap, berguna untuk konten animasi. Default 500
labelstringTidakLabel yang mudah dibaca manusia yang disimpan bersama lampiran di Media Library

Mengembalikan

{
"success": true,
"attachment_id": 88,
"url": "https://example.com/wp-content/uploads/2026/04/screenshot-about.png",
"width": 1280,
"height": 800
}

compare_screenshots

Mengambil dua tangkapan layar dan mengembalikan skor diff visual plus gambar diff yang menyorot area yang berubah. Berguna untuk mengonfirmasi bahwa perubahan desain menghasilkan hasil yang diharapkan atau untuk mendeteksi regresi yang tidak disengaja.

Parameter

ParameterTipeWajibDeskripsi
before_urlstringYaURL halaman untuk ditangkap sebagai status "sebelum"
after_urlstringYaURL halaman untuk ditangkap sebagai status "sesudah". Dapat berupa URL yang sama jika membandingkan lintas waktu
widthintegerTidakLebar viewport untuk kedua tangkapan. Default 1280
thresholdfloatTidakAmbang perbedaan piksel (0.0–1.0). Piksel dalam toleransi ini dianggap tidak berubah. Default 0.1

Mengembalikan

{
"success": true,
"diff_score": 0.04,
"changed_pixels": 2340,
"total_pixels": 1024000,
"diff_attachment_id": 91,
"diff_url": "https://example.com/wp-content/uploads/2026/04/diff-about.png"
}

diff_score sebesar 0.0 berarti tidak ada perubahan yang terlihat; 1.0 berarti setiap piksel berubah.


review_page_design

Mengambil tangkapan layar halaman dan mengirimkannya ke model bahasa untuk analisis visual. Mengembalikan penilaian terstruktur yang mencakup tata letak, tipografi, penggunaan warna, dan masalah aksesibilitas.

Parameter

ParameterTipeWajibDeskripsi
urlstringYaURL lengkap halaman yang akan ditinjau
focusstringTidakDaftar area tinjauan yang dipisahkan koma untuk ditekankan: layout, typography, colour, accessibility, mobile. Default: semua area
widthintegerTidakLebar viewport. Default 1280

Mengembalikan

{
"success": true,
"screenshot_url": "https://example.com/wp-content/uploads/2026/04/review-about.png",
"assessment": {
"overall": "The page structure is clean and readable. Two accessibility issues detected.",
"layout": "Good visual hierarchy. Hero section is prominent.",
"typography": "Body text is 15px — consider increasing to 16px for readability.",
"colour": "Contrast ratio on the CTA button (#fff on #4a90e2) is 3.1:1 — below the WCAG AA threshold of 4.5:1.",
"accessibility": ["Low contrast on CTA button", "Missing alt text on hero image"],
"suggestions": ["Darken the CTA button to #1a5cb0 to pass WCAG AA", "Add descriptive alt text to the hero image"]
}
}

Kemampuan yang Dapat Diinstal

Registry Kemampuan yang Dapat Diinstal memungkinkan Anda memperluas agen dengan paket kemampuan tambahan yang didistribusikan sebagai plugin WordPress. Setiap paket mendaftarkan satu atau beberapa kemampuan menggunakan API kemampuan standar.

list_available_abilities

Mengembalikan katalog paket kemampuan yang tersedia untuk instalasi dari registry.

Parameter

ParameterTypeRequiredDescription
categorystringNoFilter berdasarkan kategori: ecommerce, seo, media, social, developer

Mengembalikan

{
"packs": [
{
"slug": "gratis-ai-agent-woocommerce",
"name": "WooCommerce Abilities",
"category": "ecommerce",
"version": "1.0.0",
"abilities": ["create_product", "update_pricing", "manage_inventory"],
"installed": false
}
]
}

install_ability

Mengunduh dan mengaktifkan paket ability dari registry.

Parameter

ParameterTypeRequiredDescription
slugstringYesSlug plugin paket ability

Mengembalikan { "success": true, "slug": "gratis-ai-agent-woocommerce", "abilities_added": 3 }


recommend_plugin

Mengkueri registry ability untuk menemukan plugin terbaik bagi kasus penggunaan yang dijelaskan dan, secara opsional, menginstalnya.

Parameter

ParameterTypeRequiredDescription
descriptionstringYesDeskripsi bahasa alami dari fungsionalitas yang diinginkan
installbooleanNoJika true, menginstal plugin yang direkomendasikan segera. Default false

Contoh

{
"description": "I need a contact form with file upload support and spam protection",
"install": false
}

Mengembalikan

{
"recommendation": {
"slug": "contact-form-7",
"name": "Contact Form 7",
"reason": "Widely adopted, supports file uploads, and integrates with Akismet for spam filtering.",
"alternatives": ["wpforms-lite", "fluent-forms"]
}
}