WordPress MCP Adapter: jak wystawić Abilities API jako narzędzia dla agentów AI
WordPress 6.9 wprowadził Abilities API – mechanizm, który wreszcie porządkuje ekspozycję funkcjonalności w core i wtyczkach w formie ustandaryzowanej, wykrywalnej, typowanej i wykonywalnej. To ważne nie tylko dla programistów, ale też dla automatyzacji i agentów AI, bo daje wspólny „interfejs działań”, z którego da się bezpiecznie korzystać w różnych kontekstach (PHP, JavaScript, REST API).
Równolegle dojrzewa Model Context Protocol (MCP) – podejście do tego, jak narzędzia AI dostają kontekst i jak wywołują zewnętrzne funkcje. I tu pojawia się WordPress MCP Adapter: oficjalna warstwa, która mapuje Abilities na prymitywy MCP, dzięki czemu aplikacje typu Claude Desktop, Claude Code, Cursor czy VS Code mogą wykrywać i uruchamiać funkcje WordPressa jako MCP tools.
Szybka powtórka: czym są Abilities i po co to komu?
Abilities API daje WordPressowi „pierwszorzędne”, wielokontekstowe API funkcyjne. W praktyce chodzi o to, żeby core i wtyczki mówiły o swoich możliwościach jednym, wspólnym językiem – tak, by inne elementy ekosystemu mogły je łatwo odnaleźć i uruchomić.
Ability definiujesz raz, a potem możesz ją wykonać z PHP, JavaScriptu albo przez REST API. Rejestracja składa się z kilku kluczowych elementów:
- Unikalna nazwa (
namespace/ability-name). - Typowany schemat wejścia (input schema) i wyjścia (output schema).
permission_callback, który wymusza uprawnienia (capabilities).execute_callback, który wykonuje właściwą pracę (pobranie danych, update postów, diagnostyka, itp.).
W WordPressie 6.9 dostępne są trzy domyślne abilities w core (idealne do pierwszych testów integracji z MCP):
core/get-site-info– zwraca informacje o witrynie skonfigurowane w WordPressie; domyślnie wszystkie pola, opcjonalnie podzbiór.core/get-user-info– zwraca podstawowe dane profilu aktualnie uwierzytelnionego użytkownika (personalizacja, audyt, zachowania zależne od dostępu).core/get-environment-info– zwraca informacje diagnostyczne o środowisku uruchomieniowym (środowisko, PHP, baza danych, wersja WordPressa).
Czym jest WordPress MCP Adapter?
WordPress MCP Adapter to oficjalny pakiet w ramach inicjatywy AI Building Blocks for WordPress. Jego zadaniem jest „przetłumaczenie” abilities zarejestrowanych przez Abilities API na prymitywy wspierane przez Model Context Protocol (MCP). Dzięki temu agenci AI potrafią:
- odkrywać funkcjonalność witryny jako MCP tools (narzędzia do wykonania akcji),
- czytać dane WordPressa jako MCP resources (źródła kontekstu),
- korzystać z gotowych prompts (szablonów/procedur pracy), jeśli je skonfigurujesz.
Najważniejsza konsekwencja jest bardzo praktyczna: jeśli Twoja wtyczka już rejestruje abilities, to do „odblokowania” użycia ich przez agenta AI brakuje Ci jednego kroku.
MCP w pigułce: tools, resources i prompts
MCP porządkuje interakcje na trzech prymitywach:
- Tools – wykonywalne funkcje, które model/agent wywołuje, żeby zrobić działanie (np. pobrać zamówienia, zaktualizować post, uruchomić diagnostykę).
- Resources – pasywne źródła danych do wczytania jako kontekst (np. pliki, rekordy, statyczna konfiguracja).
- Prompts – prekonfigurowane szablony prowadzące konkretne workflow.
W przypadku MCP Adaptera abilities najczęściej lądują jako tools, bo reprezentują logikę wykonywalną. Adapter jest jednak elastyczny: jeśli dana ability dostarcza wyłącznie dane „read-only” (np. log debugowania albo statyczny zestaw konfiguracji), można ją skonfigurować tak, by działała jako resource – czyli agent AI po prostu wczyta ją jako tło, bez jawnego „wywołania” narzędzia.
Instalacja MCP Adaptera jako wtyczki (najszybszy start)
Najszybciej zaczniesz, instalując MCP Adapter jako wtyczkę z paczki z GitHuba (sekcja Releases): https://github.com/WordPress/mcp-adapter/releases.
Po instalacji i aktywacji wtyczka rejestruje domyślny serwer MCP o nazwie mcp-adapter-default-server oraz trzy dodatkowe abilities:
mcp-adapter/discover-abilitiesmcp-adapter/get-ability-infomcp-adapter/execute-ability
Te abilities są automatycznie wystawiane jako narzędzia MCP (tools):
mcp-adapter-discover-abilitiesmcp-adapter-get-ability-infomcp-adapter-execute-ability
To celowo „warstwowe” podejście do dostępu: agent może najpierw wykryć, co jest dostępne, potem pobrać informacje o konkretnej ability, a na końcu ją wykonać.
Jak udostępnić abilities przez domyślny serwer MCP (meta.mcp.public)
Domyślny serwer MCP Adaptera nie publikuje abilities automatycznie. Żeby dana ability była dostępna przez mcp-adapter-default-server, musi być jawnie oznaczona jako publiczna dla MCP. Robi się to przez flagę meta.mcp.public w argumentach rejestracji (wp_register_ability()).
'meta' => array(
'mcp' => array(
'public' => true, // Wymagane, aby ability była dostępna w domyślnym serwerze MCP
),
)Jeśli chcesz szybko potestować na core abilities, możesz dopiąć filtr wp_register_ability_args i dopisać tę flagę do konkretnych identyfikatorów.
<?php
/**
* Plugin Name: Enable core abilities
* Version: 1.0.0
*
* @package enable-core-abilities
*/
add_filter( 'wp_register_ability_args', 'myplugin_enable_core_abilities_mcp_access', 10, 2 );
/**
* Enable MCP access for core abilities.
*
* @param array $args Ability registration arguments.
* @param string $ability_name Ability ID.
* @return array Modified ability registration arguments.
*/
function myplugin_enable_core_abilities_mcp_access( array $args, string $ability_name ) {
// Enable MCP access for the three current core abilities.
$core_abilities = array(
'core/get-site-info',
'core/get-user-info',
'core/get-environment-info',
);
if ( in_array( $ability_name, $core_abilities, true ) ) {
$args['meta']['mcp']['public'] = true;
}
return $args;
}
Po takim kroku możesz podpiąć klienta AI do WordPressa przez MCP Adapter i wywoływać core abilities przez narzędzia MCP wystawione na domyślnym serwerze.
Podłączanie aplikacji AI: STDIO vs HTTP
MCP przewiduje dwa sposoby transportu: STDIO i HTTP. Wybór zwykle zależy od tego, gdzie stoi WordPress.
STDIO: najlepsze dla lokalnego developmentu (WP-CLI)
Dla lokalnych środowisk najprościej jest użyć transportu STDIO, uruchamianego przez WP-CLI. Wymaganie: musisz mieć WP-CLI lokalnie.
Minimalna konfiguracja po stronie klienta MCP wygląda tak (nazwa serwera może być dowolna – tu wordpress-mcp-server):
{
"wordpress-mcp-server": {
"command": "wp",
"args": [
"--path=/path/to/your/wordpress/installation",
"mcp-adapter",
"serve",
"--server=mcp-adapter-default-server",
"--user={admin_user}"
]
}
}
Elementy tej konfiguracji:
command:wp(czyli WP-CLI).--path: ścieżka do instalacji WordPressa.mcp-adapter serve: uruchomienie serwera MCP Adaptera.--server: wybór serwera MCP (tu: domyślny).--user: użytkownik WordPressa, jako którego klient AI będzie się uwierzytelniał (w praktyce: to jest „kontekst uprawnień” dla wywołań).
HTTP: dla publicznych instalacji (i bez STDIO) przez zdalny proxy
Dla publicznie dostępnych instalacji WordPressa (albo gdy nie chcesz/nie możesz iść przez STDIO) możesz użyć transportu HTTP. W typowym wariancie robi się to przez zdalny proxy @automattic/mcp-wordpress-remote: https://www.npmjs.com/package/@automattic/mcp-wordpress-remote.
Wymagania: Node.js na Twoim komputerze oraz uwierzytelnianie po stronie WordPressa – najczęściej przez Application Passwords (hasła aplikacji) lub własną implementację OAuth.
{
"wordpress-mcp-server": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
"env": {
"WP_API_URL": "https://yoursite.example/wp-json/mcp/mcp-adapter-default-server",
"WP_API_USERNAME": "{admin_user}",
"WP_API_PASSWORD": "{application-password}"
}
}
}
Na co zwrócić uwagę:
command:npx(uruchamia paczki Node.js).-y: automatyczna zgoda na instalację paczki.WP_API_URL: URL do endpointu MCP w WordPressie (REST).WP_API_USERNAMEiWP_API_PASSWORD: dane do uwierzytelnienia (np. hasło aplikacji użytkownika).
Jeśli łączysz się lokalnie przez HTTP proxy i coś nie działa, pomocne są wskazówki diagnostyczne w dokumentacji projektu: https://github.com/Automattic/mcp-wordpress-remote/blob/trunk/Docs/troubleshooting.md. Najczęstsze problemy to wiele wersji Node.js na maszynie albo kłopoty z lokalnymi certyfikatami SSL.
Konfiguracja w konkretnych aplikacjach (Claude Desktop, Cursor, Claude Code, VS Code)
Uwaga o ścieżkach i użytkowniku
Przykłady poniżej bazują na lokalnej instalacji pod ścieżką /Users/jonathanbossenger/Studio/wordpress-mcp oraz użytkowniku admin i lokalnym adresie http://localhost:8885/. Podmień to na własne wartości.
Claude Desktop
Claude Desktop ma natywne wsparcie dla MCP. Konfigurację dodasz w zakładce Developer (ścieżka: Claude → Settings → Developer), a następnie w sekcji Local MCP servers wybierasz Edit config. Otworzy się lokalizacja pliku claude_desktop_config.json.
Serwery MCP dodaje się do obiektu mcpServers:
{
"mcpServers": {
}
}
Przykład dla STDIO:
{
"mcpServers": {
"wordpress-mcp-server": {
"command": "wp",
"args": [
"--path=/Users/jonathanbossenger/Studio/wordpress-mcp",
"mcp-adapter",
"serve",
"--server=mcp-adapter-default-server",
"--user=admin"
]
}
}
}
Przykład dla HTTP:
{
"mcpServers": {
"wordpress-mcp-server": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
"env": {
"WP_API_URL": "http://localhost:8885/wp-json/mcp/mcp-adapter-default-server",
"WP_API_USERNAME": "admin",
"WP_API_PASSWORD": "2SEB qW5j D7CW fpsh pbmN RGva"
}
}
}
}
Po zapisaniu pliku musisz zrestartować Claude Desktop – konfiguracje MCP są wczytywane przy starcie. Gdy wszystko działa, w Developer → Local MCP servers zobaczysz status running przy nazwie serwera.

Cursor
W Cursor przechodzisz do Cursor → Settings → Cursor Settings, potem sekcja Tools and MCP. Tam wybierasz Add Custom MCP, co otworzy plik konfiguracyjny mcp.json.
Format konfiguracji jest taki sam jak w Claude Desktop. Po zapisaniu wracasz do Tools and MCP i włączasz serwer do użycia w sesjach kodowania.

Claude Code
W Claude Code masz dwie opcje: dodać obiekt mcpServers do pliku .claude.json w katalogu domowym (konfiguracja globalna), albo stworzyć .mcp.json w katalogu projektu (konfiguracja per-projekt). Druga opcja jest praktyczna, jeśli różne projekty mają różne serwery MCP. Format konfiguracji pozostaje taki sam jak w Cursor/Claude Desktop.
VS Code
VS Code wymaga pliku JSON opisującego serwer MCP, zwykle mcp.json, umieszczonego w .vscode w workspace projektu. Dokumentacja konfiguracji jest tutaj: https://code.visualstudio.com/docs/copilot/customization/mcp-servers.
Różnica względem Claude Desktop/Cursor jest jedna: zamiast mcpServers używasz obiektu servers. Reszta definicji serwerów jest taka sama.
{
"servers": {
// MCP server definitions go here
}
}
Po utworzeniu pliku VS Code pokazuje pasek sterowania MCP, gdzie możesz wystartować/zatrzymać/zrestartować serwer. Gdy serwer działa, VS Code pokaże też liczbę dostępnych narzędzi (tools) – np. 3 na domyślnym serwerze MCP Adaptera.
Jak wygląda użycie narzędzi MCP w praktyce?
Gdy klient AI jest połączony z serwerem MCP Twojej witryny, może używać narzędzi wystawionych przez MCP Adapter. Przykładowy scenariusz: prosisz w Claude Desktop o „Get the site info from my WordPress site”.

Typowy przebieg jest taki: klient AI wykrywa dostępny serwer MCP i najpierw wywołuje mcp-adapter-discover-abilities, żeby sprawdzić, jakie abilities są dostępne. Następnie dobiera właściwą ability (np. core/get-site-info) i uruchamia ją przez mcp-adapter-execute-ability, przekazując nazwę ability. Wynik wraca do aplikacji i jest prezentowany jako odpowiedź.
Własny serwer MCP w Twojej wtyczce (Composer + create_server())
Domyślny serwer MCP Adaptera pokrywa większość potrzeb, ale czasem lepiej mieć własny serwer MCP na poziomie wtyczki – np. żeby precyzyjnie kontrolować, które abilities są wystawiane, jaką mają nazwę/deskrypcję w kliencie AI i jakie transporty/handlery są używane.
Wariant „wtyczkowy” robi się przez instalację pakietu MCP Adapter przez Composer oraz rejestrację serwera w kodzie.
1) Dodaj zależność przez Composer
composer require wordpress/mcp-adapter
2) Załaduj autoloader Composer
if ( file_exists( __DIR__ . '/vendor/autoload.php' ) ) {
require_once __DIR__ . '/vendor/autoload.php';
}
Jeśli istnieje ryzyko, że kilka wtyczek na stronie będzie zależeć od MCP Adaptera lub Abilities API, zalecane jest użycie Jetpack Autoloader, żeby uniknąć konfliktów wersji: https://github.com/WordPress/mcp-adapter/blob/trunk/docs/getting-started/installation.md#using-jetpack-autoloader-highly-recommended.
3) Zainicjuj MCP Adapter
if ( ! class_exists( WPMCPCoreMcpAdapter::class ) ) {
// Jeśli klasa MCP Adaptera nie jest dostępna, pokaż błąd / admin notice.
return;
}
// Initialize MCP Adapter and its default server.
WPMCPCoreMcpAdapter::instance();
4) Utwórz własny serwer MCP w akcji mcp_adapter_init
Własny serwer tworzysz na hooku mcp_adapter_init. Callback dostaje instancję adaptera, a następnie wywołujesz create_server() z pełną konfiguracją.
add_action( 'mcp_adapter_init', 'myplugin_create_custom_mcp_server' );
function myplugin_create_custom_mcp_server( $adapter ) {
$adapter = WPMCPCoreMcpAdapter::instance();
$adapter->create_server(
'custom-mcp-server', // Unique server identifier.
'custom-mcp-server', // REST API namespace.
'mcp', // REST API route.
'Custom MCP Server', // Server name.
'Custom MCP Server', // Server description.
'v1.0.0', // Server version.
array( // Transport methods.
WPMCPTransportHttpTransport::class, // Recommended: MCP 2025-06-18 compliant.
),
WPMCPInfrastructureErrorHandlingErrorLogMcpErrorHandler::class, // Error handler.
WPMCPInfrastructureObservabilityNullMcpObservabilityHandler::class, // Observability handler.
array( 'namespace/ability-name' ), // Abilities to expose as tools
array(), // Resources (optional).
array(), // Prompts (optional).
);
}
Parametry, które najczęściej interesują wtyczkowego developera:
- (1) Unikalny identyfikator serwera – używany np. przy uruchamianiu przez WP-CLI.
- (2) i (3) Namespace i route REST API dla serwera MCP.
- (4) i (5) Nazwa i opis serwera – widoczne w aplikacjach AI na liście serwerów MCP.
- (6) Wersja serwera.
- (10) Lista nazw abilities, które chcesz wystawić jako MCP tools (może być wiele).
- Pozostałe argumenty: transport, obsługa błędów i observability. Możesz użyć domyślnych klas z pakietu albo napisać własne, jeśli chcesz spinać to z własnym logowaniem/monitoringiem/transportem.
Przykład end-to-end: własny serwer MCP dla wtyczki „List All URLs”
Dobry przykład praktyczny to wtyczka „List All URLs”: https://github.com/wptrainingteam/list-all-urls. Poniżej komplet kroków, żeby dodać do niej własny serwer MCP.
Ważne
Przed rozpoczęciem dezaktywuj wtyczkę MCP Adapter (jeśli masz ją aktywną). W tym scenariuszu będziesz używać MCP Adaptera jako zależności Composer w samej wtyczce.
1) Sklonuj repo do katalogu wtyczek
cd wp-content/plugins
git clone git@github.com:wptrainingteam/list-all-urls.git
2) Przełącz się na gałąź z implementacją Abilities API
cd list-all-urls
git checkout abilities
3) Zainstaluj zależności
composer install
4) Dodaj MCP Adapter jako zależność
composer require wordpress/mcp-adapter
5) Zainicjuj adapter i zarejestruj serwer MCP w list-all-urls.php
Otwórz główny plik wtyczki list-all-urls.php i dodaj na końcu kod inicjalizujący MCP Adapter oraz tworzący serwer MCP, który wystawia list-all-urls/urls jako MCP tool.
if ( ! class_exists( WPMCPCoreMcpAdapter::class ) ) {
return;
}
// Initialize MCP Adapter and its default server.
WPMCPCoreMcpAdapter::instance();
add_action( 'mcp_adapter_init', 'list_all_urls_create_custom_mcp_server' );
/**
* Create a custom MCP server for the List All URLs plugin.
*
* @param object $adapter WPMCPCoreMcpAdapter The MCP Adapter instance.
* @return void
*/
function list_all_urls_create_custom_mcp_server( $adapter ) {
$adapter = WPMCPCoreMcpAdapter::instance();
$adapter->create_server(
'list-all-urls-mcp-server',
'list-all-urls-mcp-server',
'mcp',
'List All URLS MCP Server',
'Custom MCP Server for the List All URLs plugin. Currently exposes only the list-all-urls/urls ability as an MCP Tool.',
'v1.0.0',
array(
WPMCPTransportHttpTransport::class,
),
WPMCPInfrastructureErrorHandlingErrorLogMcpErrorHandler::class,
WPMCPInfrastructureObservabilityNullMcpObservabilityHandler::class,
array( 'list-all-urls/urls' ),
);
}
W tym podejściu nie musisz ustawiać meta.mcp.public dla list-all-urls/urls, bo wystawiasz ability jawnie w konfiguracji własnego serwera MCP.
6) Aktywuj wtyczkę i podmień konfigurację klienta AI
Po aktywacji w panelu WordPressa zaktualizuj konfigurację MCP w aplikacji AI tak, aby używała nowego serwera list-all-urls-mcp-server. Przykład dla VS Code pokazujący dwa serwery naraz (domyślny i ten z wtyczki), oba przez STDIO:
{
"servers": {
"wordpress-mcp-server": {
"command": "wp",
"args": [
"--path=/Users/jonathanbossenger/Studio/wordpress-mcp",
"mcp-adapter",
"serve",
"--server=mcp-adapter-default-server",
"--user=admin"
]
},
"list-all-urls-mcp-server": {
"command": "wp",
"args": [
"--path=/Users/jonathanbossenger/Studio/wordpress-mcp",
"mcp-adapter",
"serve",
"--server=list-all-urls-mcp-server",
"--user=admin"
]
}
}
}
W wielu aplikacjach możesz mieć skonfigurowanych kilka serwerów MCP jednocześnie – co ułatwia przełączanie się między różnymi witrynami WordPress lub różnymi zestawami abilities wystawianymi przez konkretne wtyczki.
Po zmianie konfiguracji pamiętaj, żeby zrestartować aplikację AI albo uruchomić serwer MCP w jej interfejsie (zależnie od klienta). Gdy wszystko gra, możesz poprosić AI o „List all URLs on my WordPress site”, a klient wywoła narzędzie list-all-urls-urls przez MCP Adapter.

Bezpieczeństwo i dobre praktyki (to są „zalogowani użytkownicy”)
Kluczowa rzecz: klienci MCP działają w kontekście zalogowanego użytkownika WordPressa. Traktuj więc integrację MCP jak część powierzchni aplikacji (attack surface). Zestaw praktyk, które warto przyjąć od razu:
- Uważnie projektuj
permission_callback– każda ability powinna sprawdzać minimalne wymagane capability (manage_options,edit_posts, itd.). Unikaj__return_truedla operacji destrukcyjnych (np. usuwanie treści). - Używaj dedykowanych użytkowników do dostępu MCP – szczególnie na produkcji utwórz osobną rolę/użytkownika o ograniczonych uprawnieniach. Nie wystawiaj „mocnych” abilities niezweryfikowanym klientom AI.
- Dla publicznych endpointów MCP preferuj możliwości tylko do odczytu – przy HTTP dostępnym z internetu skup się na diagnostyce, raportowaniu i odczycie treści.
- Jeśli trzeba, wdrażaj własne uwierzytelnianie – domyślnie często opiera się to o application passwords, ale możesz wdrożyć OAuth lub inne metody, jeśli wymaga tego profil ryzyka.
- Monitoruj i loguj użycie – przez własne handlery błędów i observability podepniesz się pod swój stos logowania/monitoringu.
Minimalna ścieżka „hello AI” dla developera WordPressa
Jeśli chcesz wejść w temat bez wielkiej przebudowy, minimalny zestaw kroków wygląda tak:
- Zarejestruj jedną ability (najlepiej read-only).
- Dodaj MCP Adapter (jako wtyczkę lub zależność Composer) i go zainicjuj.
- Jeśli używasz domyślnego serwera, ustaw
meta.mcp.public = truedla tej ability. - Podłącz klienta MCP-aware (Claude Desktop/Cursor/VS Code/Claude Code) przez STDIO (lokalnie) albo HTTP (zdalnie).
- Testuj proste scenariusze i stopniowo rozszerzaj zestaw abilities i workflow.
Największa wartość z połączenia Abilities API + MCP Adaptera jest taka, że wtyczki zaczynają zachowywać się jak AI-ready APIs – bez wymyślania własnych endpointów i bez tworzenia „jednorazowych” integracji pod konkretnego dostawcę AI.
Dodatkowy kontekst: WordPress.com, OAuth 2.1 i zgodność podejścia
W praktyce pojawia się też pytanie o spójność narzędzi MCP między WordPress.com a self-hosted. Istotna informacja: narzędzia MCP w WordPress.com są oparte o ten sam fundament Abilities API i MCP Adapter, więc scenariusz „rejestruję możliwości raz i działają w obu światach” jest teoretycznie osiągalny. Różnica, która dziś wybija się najmocniej, dotyczy uwierzytelniania: WordPress.com korzysta z OAuth 2.1 (opis: https://wordpress.com/blog/2026/01/22/connect-ai-agents-to-wordpress-oauth-2-1/), a w self-hosted typowo opierasz się o JWT lub Application Passwords.
Dokumentacja, do której warto zaglądać na bieżąco:
- Abilities API: https://developer.wordpress.org/apis/abilities/
- MCP Adapter (repo): https://github.com/WordPress/mcp-adapter
- Model Context Protocol: https://modelcontextprotocol.io/docs/getting-started/intro
Odniesienia / Źródła
- From Abilities to AI Agents: Introducing the WordPress MCP Adapter
- MCP Adapter
- MCP Adapter releases
- Model Context Protocol – Introduction
- AI Building Blocks for WordPress
- MCP Adapter (Make WordPress AI)
- Abilities API in WordPress 6.9
- Introducing the WordPress Abilities API
- Abilities API documentation
- @automattic/mcp-wordpress-remote
- mcp-wordpress-remote troubleshooting
- Application Passwords integration guide
- VS Code MCP servers documentation
- List All URLs plugin
- Using Jetpack Autoloader (recommended)
- Build MCP tools like ogres with layers
- Connect AI agents to WordPress (OAuth 2.1)
Magdalena Wiśniewska
Inżynier infrastruktury chmurowej, specjalistka Terraform i Infrastructure as Code. Automatyzacja i skalowalność to moja pasja.
Wszystkie wpisyWięcej od Magdalena Wiśniewska
Porty SMTP w 2026: 587 vs 465 vs 25 – co wybrać, żeby maile z WordPressa naprawdę dochodziły
GPT-5.3-Codex: Codex przestaje być „agentem do kodu” i zaczyna ogarniać całą pracę na komputerze
WP Media Cleanup: jak bezpiecznie usuwać nieużywane warianty obrazków w WordPressie i odzyskać miejsce na dysku