{"id":140,"date":"2026-01-21T07:21:52","date_gmt":"2026-01-21T06:21:52","guid":{"rendered":"https:\/\/helloblog.io\/lt\/wp-cli-wordfence-abilities-api-saugumas-is-terminalo-ir-ai-agentams\/"},"modified":"2026-01-21T07:37:01","modified_gmt":"2026-01-21T06:37:01","slug":"wp-cli-wordfence-abilities-api-saugumas-is-terminalo-ir-ai-agentams","status":"publish","type":"post","link":"https:\/\/helloblog.io\/lt\/wp-cli-wordfence-abilities-api-saugumas-is-terminalo-ir-ai-agentams\/","title":{"rendered":"WP-CLI integracija su Wordfence ir WordPress Abilities API: saugumas i\u0161 terminalo ir AI agentams"},"content":{"rendered":"\n<p>WordPress administravimo skydelis yra patogus, kol turi vien\u0105 svetain\u0119 ir visk\u0105 darai rankomis. Kai pradedi pri\u017ei\u016br\u0117ti kelias ar keliasde\u0161imt instaliacij\u0173, saugumo rutina (skenavimai, WAF b\u016bkl\u0117, IP blokavimai, incident\u0173 per\u017ei\u016bra) tampa darbu, kur\u012f norisi perkelti \u012f terminal\u0105 ir automatizuoti.<\/p>\n\n\n\n<p>B\u016btent \u010dia \u012fdomiai atrodo naujas atviro kodo \u012fskiepis <strong>WP-CLI for Wordfence<\/strong>: jis prideda piln\u0105 Wordfence Security valdym\u0105 per WP-CLI, o kartu yra vienas i\u0161 pirm\u0173j\u0173, kurie \u012fgyvendina nauj\u0105 <strong>WordPress Abilities API<\/strong>, pristatyt\u0105 WordPress 6.9. Praktikoje tai rei\u0161kia ne tik patogesn\u012f darb\u0105 i\u0161 terminalo, bet ir standartizuot\u0105 s\u0105saj\u0105, kuri\u0105 gali \u201eatrasti\u201c automatizavimo \u012frankiai ir AI agentai.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kas tai per \u012frankis ir k\u0105 jis prideda?<\/h2>\n\n\n\n<p>\u012eskiepis \u012f WP-CLI \u012fdeda nauj\u0105 komand\u0173 \u201enamespace\u201c: <code>wp wfsec<\/code>. Per j\u012f gali valdyti pagrindines Wordfence operacijas \u2013 nuo skenavimo iki u\u017ekardos (WAF) ir gr\u0117smi\u0173 administravimo. Tai ypa\u010d patogu DevOps tipo darbo srautams, kai veiksmai vykdomi per SSH, CI pipeline ar centralizuot\u0105 serveri\u0173 valdym\u0105.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Saugumo skenavimas (Security Scanning)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Paleisti greit\u0105 arba piln\u0105 (full) malware skenavim\u0105<\/li>\n\n\n<li>Steb\u0117ti skenavimo progres\u0105 realiu laiku<\/li>\n\n\n<li>Per\u017ei\u016br\u0117ti skenavimo istorij\u0105 ir detalius log\u2019us<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">U\u017ekarda \/ WAF valdymas (Firewall Management)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Blokuoti arba atblokuoti IP adresus<\/li>\n\n\n<li>Nustatyti blokavimo trukm\u0119 ir prie\u017east\u012f<\/li>\n\n\n<li>Patikrinti, ar konkretus IP yra u\u017eblokuotas<\/li>\n\n\n<li>\u012ejungti arba i\u0161jungti WAF apsaug\u0105<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Incident\u0173 ir radini\u0173 valdymas (Issue Tracking)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>I\u0161vardinti visas aptiktas saugumo problemas (issues)<\/li>\n\n\n<li>Filtruoti pagal b\u016bsen\u0105: <code>new<\/code>, <code>ignored<\/code>, <code>resolved<\/code><\/li>\n\n\n<li>Trinti arba valdyti atskiras gr\u0117smes\/\u012fra\u0161us<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Konfig\u016bracija (Configuration)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Gauti ir keisti Wordfence nustatymus<\/li>\n\n\n<li>Patikrinti licencijos b\u016bsen\u0105<\/li>\n\n\n<li>Eksportuoti ir importuoti konfig\u016bracij\u0105<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Greiti WP-CLI pavyzd\u017eiai, kurie realiai praver\u010dia kasdien<\/h2>\n\n\n\n<p>\u017demiau \u2013 keli konkret\u016bs komand\u0173 pavyzd\u017eiai. Jie ai\u0161kiai parodo, kad <code>wp wfsec<\/code> galima naudoti ir ad hoc veiksmams, ir automatizuotoms proced\u016broms.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># Patikrinti bendr\u0105 Wordfence b\u016bkl\u0119\nwp wfsec status\n\n# Paleisti piln\u0105 saugumo skenavim\u0105\nwp wfsec scan start --type=full\n\n# Steb\u0117ti skenavimo eig\u0105\nwp wfsec scan status\n\n# I\u0161vardinti visas saugumo problemas (issues)\nwp wfsec issues ls --status=all\n\n# U\u017eblokuoti IP 24 valandoms\nwp wfsec firewall block 192.168.1.100 --duration=86400 --reason=&quot;Brute force attempt&quot;\n\n# Patikrinti licencijos b\u016bsen\u0105\nwp wfsec license status\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#6A737D\"># Patikrinti bendr\u0105 Wordfence b\u016bkl\u0119<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> wfsec<\/span><span style=\"color:#9ECBFF\"> status<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># Paleisti piln\u0105 saugumo skenavim\u0105<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> wfsec<\/span><span style=\"color:#9ECBFF\"> scan<\/span><span style=\"color:#9ECBFF\"> start<\/span><span style=\"color:#79B8FF\"> --type=full<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># Steb\u0117ti skenavimo eig\u0105<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> wfsec<\/span><span style=\"color:#9ECBFF\"> scan<\/span><span style=\"color:#9ECBFF\"> status<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># I\u0161vardinti visas saugumo problemas (issues)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> wfsec<\/span><span style=\"color:#9ECBFF\"> issues<\/span><span style=\"color:#9ECBFF\"> ls<\/span><span style=\"color:#79B8FF\"> --status=all<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># U\u017eblokuoti IP 24 valandoms<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> wfsec<\/span><span style=\"color:#9ECBFF\"> firewall<\/span><span style=\"color:#9ECBFF\"> block<\/span><span style=\"color:#79B8FF\"> 192.168.1.100<\/span><span style=\"color:#79B8FF\"> --duration=86400<\/span><span style=\"color:#79B8FF\"> --reason=<\/span><span style=\"color:#9ECBFF\">\"Brute force attempt\"<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># Patikrinti licencijos b\u016bsen\u0105<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> wfsec<\/span><span style=\"color:#9ECBFF\"> license<\/span><span style=\"color:#9ECBFF\"> status<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Automatizacijai svarbu tai, kad visos komandos palaiko <code>--format=json<\/code>. Tai leid\u017eia stabiliai parsinti rezultat\u0105 skriptuose (Bash, Python, Node.js) ar CI aplinkoje, nekabinant \u201ehuman-readable\u201c teksto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kod\u0117l Abilities API \u010dia svarbiau nei dar viena WP-CLI komanda?<\/h2>\n\n\n\n<p>WP-CLI integracija yra prakti\u0161ka, bet Abilities API yra tas sluoksnis, kuris atveria WordPress funkcionalum\u0105 per standartizuot\u0105, \u201eself-describing\u201c (savaime apra\u0161om\u0105) ir schema-validuojam\u0105 s\u0105saj\u0105. WordPress 6.9 \u012fved\u0117 <strong>WordPress Abilities API<\/strong> id\u0117j\u0105 kaip bendr\u0105 format\u0105, kad automatizavimo \u012frankiai ir AI agentai gal\u0117t\u0173 <em>atrasti<\/em>, kokias galimybes (abilities) suteikia konkretus WordPress ir jo \u012fskiepiai, ir su jomis dirbti be individualaus, rankomis ra\u0161yto integracinio kodo kiekvienam \u012fskiepiui.<\/p>\n\n\n\n<p>\u0160is \u012fskiepis yra vienas pirm\u0173j\u0173, kuris tai pritaiko Wordfence atvejui. Kitaip tariant: vietoje to, kad AI agentui ar automatizavimo sistemai ai\u0161kintum, kaip i\u0161kviesti de\u0161imt skirting\u0173 Wordfence endpoint\u2019\u0173 ar parse\u2019inti WP-CLI output\u2019\u0105, ji gali remtis standartizuotomis \u201eabilities\u201c.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u012eskiepio eksponuojamos 7 pagrindin\u0117s \u201eabilities\u201c<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>scan-status<\/strong> \u2013 gauti dabartin\u0119 skenavimo b\u016bsen\u0105 ir progres\u0105<\/li>\n\n\n<li><strong>scan-start<\/strong> \u2013 programi\u0161kai inicijuoti saugumo skenavimus<\/li>\n\n\n<li><strong>issues-list<\/strong> \u2013 pasiimti aptikt\u0173 saugumo incident\u0173 s\u0105ra\u0161\u0105<\/li>\n\n\n<li><strong>issues-count<\/strong> \u2013 gauti incident\u0173 skai\u010dius pagal rimtum\u0105 (severity)<\/li>\n\n\n<li><strong>firewall-status<\/strong> \u2013 patikrinti WAF b\u016bsen\u0105<\/li>\n\n\n<li><strong>firewall-block<\/strong> \u2013 blokuoti IP per API<\/li>\n\n\n<li><strong>license-status<\/strong> \u2013 u\u017eklausti licencijos informacij\u0105<\/li>\n\n<\/ul>\n\n\n\n<p>Praktinis rezultatas: gali statyti AI paremt\u0105 saugumo monitoring\u0105, integruoti Wordfence \u012f custom dashboard\u2019\u0105, arba leisti automatizavimo \u012frankiams atlikti rutinines patikras (pvz., kasnakt tikrinti skenavimo b\u016bsen\u0105, incident\u0173 skai\u010di\u0173 ir WAF \u012fjungim\u0105) per viening\u0105, lengviau \u201ediscover\u2019inam\u0105\u201c API.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Autentifikacija<\/h3>\n\n\n\n<p>Abilites API pus\u0117je autentifikacija realizuota per <strong>WordPress Application Passwords<\/strong> naudojant <strong>Basic Auth<\/strong>. Tai patogus pasirinkimas automatizacijai, kai reikia ai\u0161kaus ir lengvai i\u0161duodamo prisijungimo mechanizmo be papildom\u0173 OAuth sluoksni\u0173.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Reikalavimai (k\u0105 b\u016btina tur\u0117ti, kad veikt\u0173)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>WordPress 6.9+<\/li>\n\n\n<li>PHP 8.0+<\/li>\n\n\n<li>WP-CLI 2.5+<\/li>\n\n\n<li>Wordfence Security \u012fskiepis (tinka tiek nemokama, tiek premium versija)<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Atsisiuntimas ir diegimas<\/h2>\n\n\n\n<p>Autorius pateikia paruo\u0161t\u0105 ZIP release\u2019\u0105: atsisiunti ir \u012fkeli \u012f <code>\/wp-content\/plugins\/<\/code> katalog\u0105, kaip \u012fprast\u0105 \u012fskiep\u012f. Alternatyviai \u2013 jei naudoji Bedrock tipo strukt\u016br\u0105, numatytas diegimas per Composer (detal\u0117s pateiktos repozitorijoje).<\/p>\n\n\n<a href=\"https:\/\/github.com\/trueqap\/wpcli-for-wordfence\/releases\/download\/v1.0.0\/wpcli-for-wordfence-1.0.0.zip\" class=\"download-card\" download>\n                <span class=\"download-icon\"><i class=\"fa-duotone fa-file-zipper\"><\/i><\/span>\n                <span class=\"download-info\">\n                    <span class=\"download-title\">Download WP CLI for Wordfence v1.0.0<\/span>\n                    <span class=\"download-meta\"><span class=\"download-filename\">wpcli-for-wordfence-1.0.0.zip<\/span><\/span>\n                <\/span>\n                <span class=\"download-action\"><i class=\"fa-duotone fa-arrow-down-to-line\"><\/i><\/span>\n            <\/a>\n\n\n<h2 class=\"wp-block-heading\">Kur tai labiausiai atsiperka realiame gyvenime?<\/h2>\n\n\n\n<p>Jei dirbi su keliomis WordPress instaliacijomis, <code>wp wfsec<\/code> greitai tampa \u201esaugumo komand\u0173 centru\u201c: galima paleisti piln\u0105 skenavim\u0105 nakt\u012f per cron, surinkti rezultatus JSON formatu, o incidentus ir WAF b\u016bsen\u0105 paduoti \u012f monitoring\u0105 ar vidin\u012f dashboard\u2019\u0105. Abilities API \u010dia suteikia papildom\u0105 sluoksn\u012f: vietoje vien tik skript\u0173, atsiranda galimyb\u0117 jungti AI agentus ir automatizavimo platformas, kurios pa\u010dios \u201esupranta\u201c, k\u0105 WordPress \u0161ioje vietoje moka.<\/p>\n\n\n<div class=\"references-section\">\n                <h2>Nuorodos \/ \u0160altiniai<\/h2>\n                <ul class=\"references-list\"><li><a href=\"https:\/\/github.com\/trueqap\/wpcli-for-wordfence\" target=\"_blank\" rel=\"noopener noreferrer\">WP-CLI &amp; Abilities API for Wordfence: Manage Security from Terminal and AI Agents<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>Jei Wordfence pri\u017ei\u016bri daug svetaini\u0173 arba tiesiog nem\u0117gsti kapstytis per wp-admin, \u0161is \u012fskiepis leid\u017eia valdyti skenavimus, WAF ir incidentus per WP-CLI \u2013 ir dar atveria standartizuot\u0105 Abilities API keli\u0105 automatizacijai bei AI agentams.<\/p>\n","protected":false},"author":2,"featured_media":141,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[31,11,15,10,8],"class_list":["post-140","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress","tag-api","tag-saugumas","tag-wordfence","tag-wordpress","tag-wp-cli"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/posts\/140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/comments?post=140"}],"version-history":[{"count":1,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/posts\/140\/revisions"}],"predecessor-version":[{"id":142,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/posts\/140\/revisions\/142"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/media\/141"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/media?parent=140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/categories?post=140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/tags?post=140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}