{"id":"133c5e09-0d9a-4fdc-bafc-1c840e4848a6","shortId":"Cx6SCf","kind":"skill","title":"wordpress-plugin-development","tagline":"WordPress plugin development workflow covering plugin architecture, hooks, admin interfaces, REST API, security best practices, and WordPress 7.0 features: Real-Time Collaboration, AI Connectors, Abilities API, DataViews, and PHP-only blocks.","description":"# WordPress Plugin Development Workflow\n\n## Overview\n\nSpecialized workflow for creating WordPress plugins with proper architecture, hooks system, admin interfaces, REST API endpoints, and security practices. Now includes WordPress 7.0 features for modern plugin development.\n\n## WordPress 7.0 Plugin Development\n\n### Key Features for Plugin Developers\n\n1. **Real-Time Collaboration (RTC) Compatibility**\n   - Yjs-based CRDT for simultaneous editing\n   - Custom transport via `sync.providers` filter\n   - **Requirement**: Register post meta with `show_in_rest => true`\n\n2. **AI Connector Integration**\n   - Provider-agnostic AI via `wp_ai_client_prompt()`\n   - Settings > Connectors admin screen\n   - Works with OpenAI, Claude, Gemini, Ollama\n\n3. **Abilities API**\n   - Declare plugin capabilities for AI agents\n   - REST API: `/wp-json/abilities/v1/manifest`\n   - MCP adapter support\n\n4. **DataViews & DataForm**\n   - Modern admin interfaces\n   - Replaces WP_List_Table patterns\n   - Built-in validation\n\n5. **PHP-Only Blocks**\n   - Register blocks without JavaScript\n   - Auto-generated Inspector controls\n\n## When to Use This Workflow\n\nUse this workflow when:\n- Creating custom WordPress plugins\n- Extending WordPress functionality\n- Building admin interfaces\n- Adding REST API endpoints\n- Integrating third-party services\n- Implementing WordPress 7.0 AI/Collaboration features\n\n## Workflow Phases\n\n### Phase 1: Plugin Setup\n\n#### Skills to Invoke\n- `app-builder` - Project scaffolding\n- `backend-dev-guidelines` - Backend patterns\n\n#### Actions\n1. Create plugin directory structure\n2. Set up main plugin file with header\n3. Implement activation/deactivation hooks\n4. Set up autoloading\n5. Configure text domain\n\n#### WordPress 7.0 Plugin Header\n```php\n/*\nPlugin Name: My Plugin\nPlugin URI: https://example.com/my-plugin\nDescription: A WordPress 7.0 compatible plugin with AI and RTC support\nVersion: 1.0.0\nRequires at least: 6.0\nRequires PHP: 7.4\nAuthor: Developer Name\nLicense: GPL2+\n*/\n```\n\n#### Copy-Paste Prompts\n```\nUse @app-builder to scaffold a new WordPress plugin\n```\n\n### Phase 2: Plugin Architecture\n\n#### Skills to Invoke\n- `backend-dev-guidelines` - Architecture patterns\n\n#### Actions\n1. Design plugin class structure\n2. Implement singleton pattern\n3. Create loader class\n4. Set up dependency injection\n5. Configure plugin lifecycle\n\n#### WordPress 7.0 Architecture Considerations\n- Prepare for iframed editor compatibility\n- Design for collaboration-aware data flows\n- Consider Abilities API for AI integration\n\n#### Copy-Paste Prompts\n```\nUse @backend-dev-guidelines to design plugin architecture\n```\n\n### Phase 3: Hooks Implementation\n\n#### Skills to Invoke\n- `wordpress-penetration-testing` - WordPress patterns\n\n#### Actions\n1. Register action hooks\n2. Create filter hooks\n3. Implement callback functions\n4. Set up hook priorities\n5. Add conditional hooks\n\n#### Copy-Paste Prompts\n```\nUse @wordpress-penetration-testing to understand WordPress hooks\n```\n\n### Phase 4: Admin Interface\n\n#### Skills to Invoke\n- `frontend-developer` - Admin UI\n\n#### Actions\n1. Create admin menu\n2. Build settings pages\n3. Implement options registration\n4. Add settings sections/fields\n5. Create admin notices\n\n#### WordPress 7.0 Admin Considerations\n- Test with new admin color scheme\n- Consider DataViews for data displays\n- Implement view transitions\n- Use new validation patterns\n\n#### DataViews Example\n```javascript\nimport { DataViews } from '@wordpress/dataviews';\n\nconst MyPluginDataView = () => {\n    const data = [/* records */];\n    const fields = [\n        { id: 'title', label: 'Title', sortable: true },\n        { id: 'status', label: 'Status', filterBy: true }\n    ];\n    const view = {\n        type: 'table',\n        perPage: 10,\n        sort: { field: 'title', direction: 'asc' }\n    };\n\n    return (\n        <DataViews\n            data={data}\n            fields={fields}\n            view={view}\n            onChangeView={handleViewChange}\n        />\n    );\n};\n```\n\n#### Copy-Paste Prompts\n```\nUse @frontend-developer to create WordPress admin interface\n```\n\n### Phase 5: Database Operations\n\n#### Skills to Invoke\n- `database-design` - Database design\n- `postgresql` - Database patterns\n\n#### Actions\n1. Create custom tables\n2. Implement CRUD operations\n3. Add data validation\n4. Set up data sanitization\n5. Create data upgrade routines\n\n#### RTC-Compatible Post Meta\n```php\n// Register meta for Real-Time Collaboration\nregister_post_meta('post', 'my_custom_field', [\n    'type' => 'string',\n    'single' => true,\n    'show_in_rest' => true,  // Required for RTC\n    'sanitize_callback' => 'sanitize_text_field',\n]);\n\n// For WP 7.0, also consider:\nregister_term_meta('category', 'my_term_field', [\n    'type' => 'string',\n    'show_in_rest' => true,\n]);\n```\n\n#### Copy-Paste Prompts\n```\nUse @database-design to design plugin database schema\n```\n\n### Phase 6: REST API\n\n#### Skills to Invoke\n- `api-design-principles` - API design\n- `api-patterns` - API patterns\n\n#### Actions\n1. Register REST routes\n2. Create endpoint callbacks\n3. Implement permission callbacks\n4. Add request validation\n5. Document API endpoints\n\n#### WordPress 7.0 REST API Enhancements\n- Abilities API integration\n- AI Connector endpoints\n- Enhanced validation\n\n#### Copy-Paste Prompts\n```\nUse @api-design-principles to create WordPress REST API endpoints\n```\n\n### Phase 7: Security\n\n#### Skills to Invoke\n- `wordpress-penetration-testing` - WordPress security\n- `security-scanning-security-sast` - Security scanning\n\n#### Actions\n1. Implement nonce verification\n2. Add capability checks\n3. Sanitize all inputs\n4. Escape all outputs\n5. Secure database queries\n\n#### WordPress 7.0 Security Considerations\n- Test Abilities API permission boundaries\n- Validate AI connector credential handling\n- Review collaboration data isolation\n- PHP 7.4+ requirement compliance\n\n#### Copy-Paste Prompts\n```\nUse @wordpress-penetration-testing to audit plugin security\n```\n\n### Phase 8: WordPress 7.0 Features\n\n#### Skills to Invoke\n- `api-design-principles` - AI integration\n- `backend-dev-guidelines` - Block development\n\n#### AI Connector Implementation\n```php\n// Using WordPress 7.0 AI Connector\nadd_action('save_post', 'my_plugin_generate_ai_summary', 10, 2);\n\nfunction my_plugin_generate_ai_summary($post_id, $post) {\n    if (wp_is_post_autosave($post_id) || wp_is_post_revision($post_id)) {\n        return;\n    }\n    \n    // Check if AI client is available\n    if (!function_exists('wp_ai_client_prompt')) {\n        return;\n    }\n    \n    $content = strip_tags($post->post_content);\n    if (empty($content)) {\n        return;\n    }\n    \n    // Build prompt - direct string concatenation for input\n    $result = wp_ai_client_prompt(\n        'Create a compelling 2-sentence summary for social media: ' . substr($content, 0, 1000)\n    );\n    \n    if (is_wp_error($result)) {\n        return;\n    }\n    \n    // Set temperature for consistent output\n    $result->using_temperature(0.3);\n    $summary = $result->generate_text();\n    \n    if ($summary && !is_wp_error($summary)) {\n        update_post_meta($post_id, '_ai_summary', sanitize_textarea_field($summary));\n    }\n}\n```\n\n#### Abilities API Registration\n```php\n// Register ability categories on their own hook\nadd_action('wp_abilities_api_categories_init', function() {\n    wp_register_ability_category('content-creation', [\n        'label' => __('Content Creation', 'my-plugin'),\n        'description' => __('Abilities for generating and managing content', 'my-plugin'),\n    ]);\n});\n\n// Register abilities on their own hook\nadd_action('wp_abilities_api_init', function() {\n    wp_register_ability('my-plugin/generate-summary', [\n        'label' => __('Generate Summary', 'my-plugin'),\n        'description' => __('Creates an AI-powered summary of content', 'my-plugin'),\n        'category' => 'content-creation',\n        'input_schema' => [\n            'type' => 'object',\n            'properties' => [\n                'content' => ['type' => 'string'],\n                'length' => ['type' => 'integer', 'default' => 2]\n            ],\n            'required' => ['content']\n        ],\n        'output_schema' => [\n            'type' => 'object',\n            'properties' => [\n                'summary' => ['type' => 'string']\n            ]\n        ],\n        'execute_callback' => 'my_plugin_generate_summary_cb',\n        'permission_callback' => function() {\n            return current_user_can('edit_posts');\n        }\n    ]);\n});\n\n// Handler callback\nfunction my_plugin_generate_summary_cb($input) {\n    $content = isset($input['content']) ? $input['content'] : '';\n    $length = isset($input['length']) ? absint($input['length']) : 2;\n    \n    if (empty($content)) {\n        return new WP_Error('empty_content', 'No content provided');\n    }\n    \n    if (!function_exists('wp_ai_client_prompt')) {\n        return new WP_Error('ai_unavailable', 'AI not available');\n    }\n    \n    $prompt = sprintf('Create a %d-sentence summary of: %s', $length, substr($content, 0, 2000));\n    \n    $result = wp_ai_client_prompt($prompt)\n        ->using_temperature(0.3)\n        ->generate_text();\n    \n    if (is_wp_error($result)) {\n        return $result;\n    }\n    \n    return ['summary' => sanitize_textarea_field($result)];\n}\n```\n\n#### PHP-Only Block Registration\n```php\n// Register block entirely in PHP (WordPress 7.0)\n// Note: For full PHP-only blocks, use block.json with PHP render_callback\n\n// First, create a block.json file in build/ or includes/blocks/\n// Then register in PHP:\n\n// Simple PHP-only block registration (WordPress 7.0+)\nif (function_exists('register_block_type')) {\n    register_block_type('my-plugin/featured-post', [\n        'render_callback' => function($attributes, $content, $block) {\n            $post_id = isset($attributes['postId']) ? absint($attributes['postId']) : 0;\n            \n            if (!$post_id) {\n                $post_id = get_the_ID();\n            }\n            \n            $post = get_post($post_id);\n            \n            if (!$post) {\n                return '';\n            }\n            \n            $title = esc_html($post->post_title);\n            $excerpt = esc_html(get_the_excerpt($post));\n            \n            return sprintf(\n                '<div class=\"featured-post\"><h2>%s</h2><p>%s</p></div>',\n                $title,\n                $excerpt\n            );\n        },\n        'attributes' => [\n            'postId' => ['type' => 'integer', 'default' => 0],\n            'showExcerpt' => ['type' => 'boolean', 'default' => true]\n        ],\n    ]);\n}\n```\n\n#### Disable Collaboration (if needed)\n```javascript\n// Disable RTC for specific post types\nimport { addFilter } from '@wordpress/hooks';\n\naddFilter(\n    'sync.providers',\n    'my-plugin/disable-collab',\n    () => []\n);\n```\n\n### Phase 9: Testing\n\n#### Skills to Invoke\n- `test-automator` - Test automation\n- `php-pro` - PHP testing\n\n#### Actions\n1. Set up PHPUnit\n2. Create unit tests\n3. Write integration tests\n4. Test with WordPress test suite\n5. Configure CI\n\n#### WordPress 7.0 Testing Priorities\n- Test RTC compatibility\n- Verify AI connector functionality\n- Validate DataViews integration\n- Test Interactivity API with watch()\n\n#### Copy-Paste Prompts\n```\nUse @test-automator to set up plugin testing\n```\n\n## Plugin Structure\n\n```\nplugin-name/\n├── plugin-name.php\n├── includes/\n│   ├── class-plugin.php\n│   ├── class-loader.php\n│   ├── class-activator.php\n│   └── class-deactivator.php\n├── admin/\n│   ├── class-plugin-admin.php\n│   ├── css/\n│   └── js/\n├── public/\n│   ├── class-plugin-public.php\n│   ├── css/\n│   └── js/\n├── blocks/           # PHP-only blocks (WP 7.0)\n├── abilities/        # Abilities API\n├── ai/               # AI Connector integration\n├── languages/\n└── vendor/\n```\n\n## WordPress 7.0 Compatibility Checklist\n\n- [ ] PHP 7.4+ requirement documented\n- [ ] Post meta registered with `show_in_rest => true` for RTC\n- [ ] Meta boxes migrated to block-based UIs\n- [ ] AI Connector integration tested\n- [ ] Abilities API registered (if applicable)\n- [ ] DataViews integration tested (if applicable)\n- [ ] Interactivity API uses `watch()` not `effect`\n- [ ] Tested with iframed editor\n- [ ] Collaboration fallback works (post locking)\n\n## Quality Gates\n\n- [ ] Plugin activates without errors\n- [ ] All hooks working\n- [ ] Admin interface functional\n- [ ] Security measures implemented\n- [ ] Tests passing\n- [ ] Documentation complete\n- [ ] WordPress 7.0 compatibility verified\n\n## Related Workflow Bundles\n\n- `wordpress` - WordPress development\n- `wordpress-theme-development` - Theme development\n- `wordpress-woocommerce` - WooCommerce\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["wordpress","plugin","development","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding"],"capabilities":["skill","source-sickn33","skill-wordpress-plugin-development","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/wordpress-plugin-development","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34404 github stars · SKILL.md body (12,926 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:51:59.682Z","embedding":null,"createdAt":"2026-04-18T21:47:41.341Z","updatedAt":"2026-04-22T00:51:59.682Z","lastSeenAt":"2026-04-22T00:51:59.682Z","tsv":"'/disable-collab':1290 '/featured-post':1208 '/generate-summary':997 '/my-plugin':267 '/wp-json/abilities/v1/manifest':142 '0':898,1123,1223,1264 '0.3':914,1133 '1':80,211,229,321,392,439,557,665,733,1308 '1.0.0':280 '10':512,826 '1000':899 '2':108,234,308,326,396,443,561,669,737,827,890,1032,1081,1312 '2000':1124 '3':131,242,330,379,400,447,565,673,741,1316 '4':146,246,334,404,427,451,569,677,745,1320 '5':161,250,339,409,455,542,574,681,749,1326 '6':647 '6.0':284 '7':714 '7.0':22,65,72,205,255,271,344,460,617,686,754,791,814,1161,1195,1330,1386,1397,1471 '7.4':287,772,1401 '8':789 '9':1292 'abil':30,132,360,690,758,936,941,950,957,969,979,987,993,1387,1388,1426 'absint':1078,1220 'action':228,320,391,394,438,556,664,732,818,948,985,1307 'activ':1454 'activation/deactivation':244 'ad':194 'adapt':144 'add':410,452,566,678,738,817,947,984 'addfilt':1282,1285 'admin':13,54,123,150,192,428,436,441,457,461,466,539,1372,1460 'agent':139 'agnost':114 'ai':28,109,115,118,138,275,363,693,763,800,808,815,824,832,853,861,884,930,1008,1098,1105,1107,1127,1337,1390,1391,1422 'ai-pow':1007 'ai/collaboration':206 'also':618 'api':16,31,57,133,141,196,361,649,654,657,660,662,683,688,691,704,711,759,797,937,951,988,1345,1389,1427,1437 'api-design-principl':653,703,796 'api-pattern':659 'app':218,299 'app-build':217,298 'applic':1430,1435 'architectur':11,51,310,318,345,377 'asc':517 'ask':1523 'attribut':1212,1218,1221,1259 'audit':785 'author':288 'auto':171 'auto-gener':170 'autoload':249 'autom':1299,1301,1355 'autosav':841 'avail':856,1109 'awar':356 'backend':223,226,315,371,803 'backend-dev-guidelin':222,314,370,802 'base':89,1420 'best':18 'block':37,165,167,806,1152,1156,1168,1192,1200,1203,1214,1380,1384,1419 'block-bas':1418 'block.json':1170,1178 'boolean':1267 'boundari':761,1531 'box':1415 'build':191,444,875,1181 'builder':219,300 'built':158 'built-in':157 'bundl':1476 'callback':402,611,672,676,1044,1051,1060,1174,1210 'capabl':136,739 'categori':623,942,952,958,1016 'cb':1049,1066 'check':740,851 'checklist':1399 'ci':1328 'clarif':1525 'class':324,333 'class-activator.php':1370 'class-deactivator.php':1371 'class-loader.php':1369 'class-plugin-admin.php':1373 'class-plugin-public.php':1377 'class-plugin.php':1368 'claud':128 'clear':1498 'client':119,854,862,885,1099,1128 'collabor':27,84,355,591,768,1271,1446 'collaboration-awar':354 'color':467 'compat':86,272,351,581,1335,1398,1472 'compel':889 'complet':1469 'complianc':774 'concaten':879 'condit':411 'configur':251,340,1327 'connector':29,110,122,694,764,809,816,1338,1392,1423 'consid':359,469,619 'consider':346,462,756 'consist':909 'const':488,490,493,507 'content':865,870,873,897,960,963,974,1012,1018,1025,1034,1068,1071,1073,1084,1090,1092,1122,1213 'content-cr':959,1017 'control':174 'copi':294,366,414,529,634,699,776,1349 'copy-past':293,365,413,528,633,698,775,1348 'cover':9 'crdt':90 'creat':46,184,230,331,397,440,456,537,558,575,670,708,887,1005,1112,1176,1313 'creation':961,964,1019 'credenti':765 'criteria':1534 'crud':563 'css':1374,1378 'current':1054 'custom':94,185,559,597 'd':1115 'd-sentenc':1114 'data':357,472,491,520,521,567,572,576,769 'databas':543,549,551,554,639,644,751 'database-design':548,638 'dataform':148 'dataview':32,147,470,481,485,519,1341,1431 'declar':134 'default':1031,1263,1268 'depend':337 'describ':1502 'descript':268,968,1004 'design':322,352,375,550,552,640,642,655,658,705,798 'dev':224,316,372,804 'develop':4,7,40,70,74,79,289,435,535,807,1479,1483,1485 'direct':516,877 'directori':232 'disabl':1270,1275 'display':473 'document':682,1403,1468 'domain':253 'edit':93,1057 'editor':350,1445 'effect':1441 'empti':872,1083,1089 'endpoint':58,197,671,684,695,712 'enhanc':689,696 'entir':1157 'environ':1514 'environment-specif':1513 'error':903,923,1088,1104,1139,1456 'esc':1241,1247 'escap':746 'exampl':482 'example.com':266 'example.com/my-plugin':265 'excerpt':1246,1251,1258 'execut':1043 'exist':859,1096,1198 'expert':1519 'extend':188 'fallback':1447 'featur':23,66,76,207,792 'field':494,514,522,523,598,614,626,934,1147 'file':239,1179 'filter':98,398 'filterbi':505 'first':1175 'flow':358 'frontend':434,534 'frontend-develop':433,533 'full':1164 'function':190,403,828,858,954,990,1052,1061,1095,1197,1211,1339,1462 'gate':1452 'gemini':129 'generat':172,823,831,917,971,999,1047,1064,1134 'get':1229,1233,1249 'gpl2':292 'guidelin':225,317,373,805 'handl':766 'handler':1059 'handleviewchang':527 'header':241,257 'hook':12,52,245,380,395,399,407,412,425,946,983,1458 'html':1242,1248 'id':495,501,835,843,849,929,1216,1226,1228,1231,1236 'ifram':349,1444 'implement':203,243,327,381,401,448,474,562,674,734,810,1465 'import':484,1281 'includ':63,1367 'includes/blocks':1183 'init':953,989 'inject':338 'input':744,881,1020,1067,1070,1072,1076,1079,1528 'inspector':173 'integ':1030,1262 'integr':111,198,364,692,801,1318,1342,1393,1424,1432 'interact':1344,1436 'interfac':14,55,151,193,429,540,1461 'invok':216,313,384,432,547,652,718,795,1296 'isol':770 'isset':1069,1075,1217 'javascript':169,483,1274 'js':1375,1379 'key':75 'label':497,503,962,998 'languag':1394 'least':283 'length':1028,1074,1077,1080,1120 'licens':291 'lifecycl':342 'limit':1490 'list':154 'loader':332 'lock':1450 'main':237 'manag':973 'match':1499 'mcp':143 'measur':1464 'media':895 'menu':442 'meta':102,583,586,594,622,927,1405,1414 'migrat':1416 'miss':1536 'modern':68,149 'my-plugin':965,975,994,1001,1013,1205,1287 'myplugindataview':489 'name':260,290,1365 'need':1273 'new':304,465,478,1086,1102 'nonc':735 'note':1162 'notic':458 'object':1023,1038 'ollama':130 'onchangeview':526 'openai':127 'oper':544,564 'option':449 'output':748,910,1035,1508 'overview':42 'page':446 'parti':201 'pass':1467 'past':295,367,415,530,635,700,777,1350 'pattern':156,227,319,329,390,480,555,661,663 'penetr':387,420,721,782 'permiss':675,760,1050,1529 'perpag':511 'phase':209,210,307,378,426,541,646,713,788,1291 'php':35,163,258,286,584,771,811,939,1150,1154,1159,1166,1172,1187,1190,1303,1305,1382,1400 'php-on':34,162,1149,1165,1189,1381 'php-pro':1302 'phpunit':1311 'plugin':3,6,10,39,48,69,73,78,135,187,212,231,238,256,259,262,263,273,306,309,323,341,376,643,786,822,830,967,977,996,1003,1015,1046,1063,1207,1289,1359,1361,1364,1453 'plugin-nam':1363 'plugin-name.php':1366 'post':101,582,593,595,820,834,836,840,842,846,848,868,869,926,928,1058,1215,1225,1227,1232,1234,1235,1238,1243,1244,1252,1279,1404,1449 'postgresql':553 'postid':1219,1222,1260 'power':1009 'practic':19,61 'prepar':347 'principl':656,706,799 'prioriti':408,1332 'pro':1304 'project':220 'prompt':120,296,368,416,531,636,701,778,863,876,886,1100,1110,1129,1130,1351 'proper':50 'properti':1024,1039 'provid':113,1093 'provider-agnost':112 'public':1376 'qualiti':1451 'queri':752 'real':25,82,589 'real-tim':24,81,588 'record':492 'regist':100,166,393,585,592,620,666,940,956,978,992,1155,1185,1199,1202,1406,1428 'registr':450,938,1153,1193 'relat':1474 'render':1173,1209 'replac':152 'request':679 'requir':99,281,285,607,773,1033,1402,1527 'rest':15,56,106,140,195,605,631,648,667,687,710,1410 'result':882,904,911,916,1125,1140,1142,1148 'return':518,850,864,874,905,1053,1085,1101,1141,1143,1239,1253 'review':767,1520 'revis':847 'rout':668 'routin':578 'rtc':85,277,580,609,1276,1334,1413 'rtc-compat':579 'safeti':1530 'sanit':573,610,612,742,932,1145 'sast':729 'save':819 'scaffold':221,302 'scan':727,731 'schema':645,1021,1036 'scheme':468 'scope':1501 'screen':124 'sections/fields':454 'secur':17,60,715,724,726,728,730,750,755,787,1463 'security-scanning-security-sast':725 'sentenc':891,1116 'servic':202 'set':121,235,247,335,405,445,453,570,906,1309,1357 'setup':213 'show':104,603,629,1408 'showexcerpt':1265 'simpl':1188 'simultan':92 'singl':601 'singleton':328 'skill':214,311,382,430,545,650,716,793,1294,1493 'skill-wordpress-plugin-development' 'social':894 'sort':513 'sortabl':499 'source-sickn33' 'special':43 'specif':1278,1515 'sprintf':1111,1254 'status':502,504 'stop':1521 'string':600,628,878,1027,1042 'strip':866 'structur':233,325,1362 'substitut':1511 'substr':896,1121 'success':1533 'suit':1325 'summari':825,833,892,915,920,924,931,935,1000,1010,1040,1048,1065,1117,1144 'support':145,278 'sync.providers':97,1286 'system':53 'tabl':155,510,560 'tag':867 'task':1497 'temperatur':907,913,1132 'term':621,625 'test':388,421,463,722,757,783,1293,1298,1300,1306,1315,1319,1321,1324,1331,1333,1343,1354,1360,1425,1433,1442,1466,1517 'test-autom':1297,1353 'text':252,613,918,1135 'textarea':933,1146 'theme':1482,1484 'third':200 'third-parti':199 'time':26,83,590 'titl':496,498,515,1240,1245,1257 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'transit':476 'transport':95 'treat':1506 'true':107,500,506,602,606,632,1269,1411 'type':509,599,627,1022,1026,1029,1037,1041,1201,1204,1261,1266,1280 'ui':437,1421 'unavail':1106 'understand':423 'unit':1314 'updat':925 'upgrad':577 'uri':264 'use':177,180,297,369,417,477,532,637,702,779,812,912,1131,1169,1352,1438,1491 'user':1055 'valid':160,479,568,680,697,762,1340,1516 'vendor':1395 'verif':736 'verifi':1336,1473 'version':279 'via':96,116 'view':475,508,524,525 'watch':1347,1439 'without':168,1455 'woocommerc':1488,1489 'wordpress':2,5,21,38,47,64,71,186,189,204,254,270,305,343,386,389,419,424,459,538,685,709,720,723,753,781,790,813,1160,1194,1323,1329,1396,1470,1477,1478,1481,1487 'wordpress-penetration-test':385,418,719,780 'wordpress-plugin-develop':1 'wordpress-theme-develop':1480 'wordpress-woocommerc':1486 'wordpress/dataviews':487 'wordpress/hooks':1284 'work':125,1448,1459 'workflow':8,41,44,179,182,208,1475 'wp':117,153,616,838,844,860,883,902,922,949,955,986,991,1087,1097,1103,1126,1138,1385 'write':1317 'yjs':88 'yjs-base':87","prices":[{"id":"c18cfa21-23b5-4c4f-bfe1-6cde06aa7191","listingId":"133c5e09-0d9a-4fdc-bafc-1c840e4848a6","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:47:41.341Z"}],"sources":[{"listingId":"133c5e09-0d9a-4fdc-bafc-1c840e4848a6","source":"github","sourceId":"sickn33/antigravity-awesome-skills/wordpress-plugin-development","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/wordpress-plugin-development","isPrimary":false,"firstSeenAt":"2026-04-18T21:47:41.341Z","lastSeenAt":"2026-04-22T00:51:59.682Z"}],"details":{"listingId":"133c5e09-0d9a-4fdc-bafc-1c840e4848a6","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"wordpress-plugin-development","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34404,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-21T16:43:40Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"6007aa8f7f6a9636ca054179adc908a791e4f815","skill_md_path":"skills/wordpress-plugin-development/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/wordpress-plugin-development"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"wordpress-plugin-development","description":"WordPress plugin development workflow covering plugin architecture, hooks, admin interfaces, REST API, security best practices, and WordPress 7.0 features: Real-Time Collaboration, AI Connectors, Abilities API, DataViews, and PHP-only blocks."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/wordpress-plugin-development"},"updatedAt":"2026-04-22T00:51:59.682Z"}}