[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C22APBD07T1MBH301FJKA6":3,"skill-same:01M6C22APBD07T1MBH301FJKA6":101},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":59,"ownerDescription":6,"updatedAt":60,"install":61,"resources":74},"01M6C22APBD07T1MBH301FJKA6","wp-rest-api",null,"Use when building, extending, or debugging WordPress REST API endpoints\u002Froutes: register_rest_route, WP_REST_Controller\u002Fcontroller classes, schema\u002Fargument validation, permission_callback\u002Fauthentication, response shaping, register_rest_field\u002Fregister_meta, or exposing CPTs\u002Ftaxonomies via show_in_rest.","gambitph\u002FCimo","gambitph","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F3227089?v=4","01M6C1ZD8129MTRC23K53VJ45E","Gambit Technologies","01M6C1ZDCJPEHP3CKCWNG7HDVV",2,"GPL-2.0","https:\u002F\u002Fgithub.com\u002Fgambitph\u002FCimo\u002Fblob\u002Fdevelop\u002F.cursor\u002Fskills\u002Fwp-rest-api\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"api","wp rest api","REST","debugging","authentication","validation","Meta","workflows","controller","cli","Bash","php","shaping","filesystem","node","use","schema","wordpress","2026-11-10 10:12:30",false,"---\nname: wp-rest-api\ndescription: \"Use when building, extending, or debugging WordPress REST API endpoints\u002Froutes: register_rest_route, WP_REST_Controller\u002Fcontroller classes, schema\u002Fargument validation, permission_callback\u002Fauthentication, response shaping, register_rest_field\u002Fregister_meta, or exposing CPTs\u002Ftaxonomies via show_in_rest.\"\ncompatibility: \"Targets WordPress 7.0+ (PHP 7.4.0+). Filesystem-based agent with bash + node. Some workflows require WP-CLI.\"\n---\n\n# WP REST API\n\n## When to use\n\nUse this skill when you need to:\n\n- create or update REST routes\u002Fendpoints\n- debug 401\u002F403\u002F404 errors or permission\u002Fnonce issues\n- add custom fields\u002Fmeta to REST responses\n- expose custom post types or taxonomies via REST\n- implement schema + argument validation\n- adjust response links\u002Fembedding\u002Fpagination\n\n## Inputs required\n\n- Repo root + target plugin\u002Ftheme\u002Fmu-plugin (path to entrypoint).\n- Desired namespace + version (e.g. `my-plugin\u002Fv1`) and routes.\n- Authentication mode (cookie + nonce vs application passwords vs auth plugin).\n- Target WordPress version constraints (if below 7.0, call out).\n\n## Procedure\n\n### 0) Triage and locate REST usage\n\n1. Run triage:\n   - `node skills\u002Fwp-project-triage\u002Fscripts\u002Fdetect_wp_project.mjs`\n2. Search for existing REST usage:\n   - `register_rest_route`\n   - `WP_REST_Controller`\n   - `rest_api_init`\n   - `show_in_rest`, `rest_base`, `rest_controller_class`\n\nIf this is a full site repo, pick the specific plugin\u002Ftheme before changing code.\n\n### 1) Choose the right approach\n\n- **Expose CPT\u002Ftaxonomy in `wp\u002Fv2`:**\n  - Use `show_in_rest => true` + `rest_base` if needed.\n  - Optionally provide `rest_controller_class`.\n  - Read `references\u002Fcustom-content-types.md`.\n- **Custom endpoints:**\n  - Use `register_rest_route()` on `rest_api_init`.\n  - Prefer a controller class (`WP_REST_Controller` subclass) for anything non-trivial.\n  - Read `references\u002Froutes-and-endpoints.md` and `references\u002Fschema.md`.\n\n### 2) Register routes safely (namespaces, methods, permissions)\n\n- Use a unique namespace `vendor\u002Fv1`; avoid `wp\u002F*` unless core.\n- Always provide `permission_callback` (use `__return_true` for public endpoints).\n- Use `WP_REST_Server::READABLE\u002FCREATABLE\u002FEDITABLE\u002FDELETABLE` constants.\n- Return data via `rest_ensure_response()` or `WP_REST_Response`.\n- Return errors via `WP_Error` with an explicit `status`.\n\nRead `references\u002Froutes-and-endpoints.md`.\n\n### 3) Validate\u002Fsanitize request args\n\n- Define `args` with `type`, `default`, `required`, `validate_callback`, `sanitize_callback`.\n- Prefer JSON Schema validation with `rest_validate_value_from_schema` then `rest_sanitize_value_from_schema`.\n- Never read `$_GET`\u002F`$_POST` directly inside endpoints; use `WP_REST_Request`.\n\nRead `references\u002Fschema.md`.\n\n### 4) Responses, fields, and links\n\n- Do **not** remove core fields from default endpoints; add fields instead.\n- Use `register_rest_field` for computed fields; `register_meta` with `show_in_rest` for meta.\n- For `object`\u002F`array` meta, define schema in `show_in_rest.schema`.\n- If you need unfiltered post content (e.g., ToC plugins injecting HTML), request `?context=edit` to access `content.raw` (auth required). Pair with `_fields=content.raw` to keep responses small.\n- Add related resource links via `WP_REST_Response::add_link()`.\n\nRead `references\u002Fresponses-and-fields.md`.\n\n### 5) Authentication and authorization\n\n- For wp-admin\u002FJS: cookie auth + `X-WP-Nonce` (action `wp_rest`).\n- For external clients: application passwords (basic auth) or an auth plugin.\n- Use capability checks in `permission_callback` (authorization), not just “logged in”.\n\nRead `references\u002Fauthentication.md`.\n\n### 6) Client-facing behavior (discovery, pagination, embeds)\n\n- Ensure discovery works (`Link` header or `\u003Clink rel=\"https:\u002F\u002Fapi.w.org\u002F\">`).\n- Support `_fields`, `_embed`, `_method`, `_envelope`, pagination headers.\n- Remember `per_page` is capped at 100.\n\nRead `references\u002Fdiscovery-and-params.md`.\n\n## Verification\n\n- `\u002Fwp-json\u002F` index includes your namespace.\n- `OPTIONS` on your route returns schema (when provided).\n- Endpoint returns expected data; permission failures return 401\u002F403 as appropriate.\n- CPT\u002Ftaxonomy routes appear under `wp\u002Fv2` when `show_in_rest` is true.\n- Run repo lint\u002Ftests and any PHP\u002FJS build steps.\n\n## Failure modes \u002F debugging\n\n- 404: `rest_api_init` not firing, route typo, or permalinks off (use `?rest_route=`).\n- 401\u002F403: missing nonce\u002Fauth, or `permission_callback` too strict.\n- `_doing_it_wrong` for missing `permission_callback`: add it (use `__return_true` if public).\n- Invalid params: missing\u002Fincorrect `args` schema or validation callbacks.\n- Fields missing: `show_in_rest` false, meta not registered, or CPT lacks `custom-fields` support.\n\n## Escalation\n\nIf version support or behavior is unclear, consult the REST API Handbook and core docs before inventing patterns.\n","# WP REST API\n\n## When to use\n\nUse this skill when you need to:\n\n- create or update REST routes\u002Fendpoints\n- debug 401\u002F403\u002F404 errors or permission\u002Fnonce issues\n- add custom fields\u002Fmeta to REST responses\n- expose custom post types or taxonomies via REST\n- implement schema + argument validation\n- adjust response links\u002Fembedding\u002Fpagination\n\n## Inputs required\n\n- Repo root + target plugin\u002Ftheme\u002Fmu-plugin (path to entrypoint).\n- Desired namespace + version (e.g. `my-plugin\u002Fv1`) and routes.\n- Authentication mode (cookie + nonce vs application passwords vs auth plugin).\n- Target WordPress version constraints (if below 7.0, call out).\n\n## Procedure\n\n### 0) Triage and locate REST usage\n\n1. Run triage:\n   - `node skills\u002Fwp-project-triage\u002Fscripts\u002Fdetect_wp_project.mjs`\n2. Search for existing REST usage:\n   - `register_rest_route`\n   - `WP_REST_Controller`\n   - `rest_api_init`\n   - `show_in_rest`, `rest_base`, `rest_controller_class`\n\nIf this is a full site repo, pick the specific plugin\u002Ftheme before changing code.\n\n### 1) Choose the right approach\n\n- **Expose CPT\u002Ftaxonomy in `wp\u002Fv2`:**\n  - Use `show_in_rest => true` + `rest_base` if needed.\n  - Optionally provide `rest_controller_class`.\n  - Read `references\u002Fcustom-content-types.md`.\n- **Custom endpoints:**\n  - Use `register_rest_route()` on `rest_api_init`.\n  - Prefer a controller class (`WP_REST_Controller` subclass) for anything non-trivial.\n  - Read `references\u002Froutes-and-endpoints.md` and `references\u002Fschema.md`.\n\n### 2) Register routes safely (namespaces, methods, permissions)\n\n- Use a unique namespace `vendor\u002Fv1`; avoid `wp\u002F*` unless core.\n- Always provide `permission_callback` (use `__return_true` for public endpoints).\n- Use `WP_REST_Server::READABLE\u002FCREATABLE\u002FEDITABLE\u002FDELETABLE` constants.\n- Return data via `rest_ensure_response()` or `WP_REST_Response`.\n- Return errors via `WP_Error` with an explicit `status`.\n\nRead `references\u002Froutes-and-endpoints.md`.\n\n### 3) Validate\u002Fsanitize request args\n\n- Define `args` with `type`, `default`, `required`, `validate_callback`, `sanitize_callback`.\n- Prefer JSON Schema validation with `rest_validate_value_from_schema` then `rest_sanitize_value_from_schema`.\n- Never read `$_GET`\u002F`$_POST` directly inside endpoints; use `WP_REST_Request`.\n\nRead `references\u002Fschema.md`.\n\n### 4) Responses, fields, and links\n\n- Do **not** remove core fields from default endpoints; add fields instead.\n- Use `register_rest_field` for computed fields; `register_meta` with `show_in_rest` for meta.\n- For `object`\u002F`array` meta, define schema in `show_in_rest.schema`.\n- If you need unfiltered post content (e.g., ToC plugins injecting HTML), request `?context=edit` to access `content.raw` (auth required). Pair with `_fields=content.raw` to keep responses small.\n- Add related resource links via `WP_REST_Response::add_link()`.\n\nRead `references\u002Fresponses-and-fields.md`.\n\n### 5) Authentication and authorization\n\n- For wp-admin\u002FJS: cookie auth + `X-WP-Nonce` (action `wp_rest`).\n- For external clients: application passwords (basic auth) or an auth plugin.\n- Use capability checks in `permission_callback` (authorization), not just “logged in”.\n\nRead `references\u002Fauthentication.md`.\n\n### 6) Client-facing behavior (discovery, pagination, embeds)\n\n- Ensure discovery works (`Link` header or `\u003Clink rel=\"https:\u002F\u002Fapi.w.org\u002F\">`).\n- Support `_fields`, `_embed`, `_method`, `_envelope`, pagination headers.\n- Remember `per_page` is capped at 100.\n\nRead `references\u002Fdiscovery-and-params.md`.\n\n## Verification\n\n- `\u002Fwp-json\u002F` index includes your namespace.\n- `OPTIONS` on your route returns schema (when provided).\n- Endpoint returns expected data; permission failures return 401\u002F403 as appropriate.\n- CPT\u002Ftaxonomy routes appear under `wp\u002Fv2` when `show_in_rest` is true.\n- Run repo lint\u002Ftests and any PHP\u002FJS build steps.\n\n## Failure modes \u002F debugging\n\n- 404: `rest_api_init` not firing, route typo, or permalinks off (use `?rest_route=`).\n- 401\u002F403: missing nonce\u002Fauth, or `permission_callback` too strict.\n- `_doing_it_wrong` for missing `permission_callback`: add it (use `__return_true` if public).\n- Invalid params: missing\u002Fincorrect `args` schema or validation callbacks.\n- Fields missing: `show_in_rest` false, meta not registered, or CPT lacks `custom-fields` support.\n\n## Escalation\n\nIf version support or behavior is unclear, consult the REST API Handbook and core docs before inventing patterns.\n",{"name":5,"description":7,"compatibility":52},"Targets WordPress 7.0+ (PHP 7.4.0+). Filesystem-based agent with bash + node. Some workflows require WP-CLI.","develop","647b3a86ad96843d26f677d200372b67b7336254",".cursor\u002Fskills\u002Fwp-rest-api",0,"https:\u002F\u002Fgithub.com\u002Fgambitph\u002FCimo","https:\u002F\u002Fgithub.com\u002Fgambitph","https:\u002F\u002Fwpstackable.com","2026-10-15 14:34:26",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add gambitph\u002FCimo --skill wp-rest-api",{"tool":67,"command":68},"bunx","bunx skills add gambitph\u002FCimo --skill wp-rest-api",{"tool":70,"command":71},"pnpm","pnpm dlx skills add gambitph\u002FCimo --skill wp-rest-api","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgambitph\u002FCimo\u002Fblob\u002Fdevelop\u002F.cursor\u002Fskills\u002Fwp-rest-api\u002FSKILL.md",true,[75,81,85,89,93,97],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"references\u002Fauthentication.md","REFERENCE","参考文档",627,"https:\u002F\u002Fgithub.com\u002Fgambitph\u002FCimo\u002Fblob\u002Fdevelop\u002F.cursor\u002Fskills\u002Fwp-rest-api\u002Freferences\u002Fauthentication.md",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002Fcustom-content-types.md",760,"https:\u002F\u002Fgithub.com\u002Fgambitph\u002FCimo\u002Fblob\u002Fdevelop\u002F.cursor\u002Fskills\u002Fwp-rest-api\u002Freferences\u002Fcustom-content-types.md",{"path":86,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Fdiscovery-and-params.md",730,"https:\u002F\u002Fgithub.com\u002Fgambitph\u002FCimo\u002Fblob\u002Fdevelop\u002F.cursor\u002Fskills\u002Fwp-rest-api\u002Freferences\u002Fdiscovery-and-params.md",{"path":90,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fresponses-and-fields.md",1091,"https:\u002F\u002Fgithub.com\u002Fgambitph\u002FCimo\u002Fblob\u002Fdevelop\u002F.cursor\u002Fskills\u002Fwp-rest-api\u002Freferences\u002Fresponses-and-fields.md",{"path":94,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Froutes-and-endpoints.md",1370,"https:\u002F\u002Fgithub.com\u002Fgambitph\u002FCimo\u002Fblob\u002Fdevelop\u002F.cursor\u002Fskills\u002Fwp-rest-api\u002Freferences\u002Froutes-and-endpoints.md",{"path":98,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Fschema.md",964,"https:\u002F\u002Fgithub.com\u002Fgambitph\u002FCimo\u002Fblob\u002Fdevelop\u002F.cursor\u002Fskills\u002Fwp-rest-api\u002Freferences\u002Fschema.md",[102,119,137,157,176,201],{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":114,"publishedAt":47},"01M6C22DH5PD92NQAX0Y2X0YA6","writing-for-agents","Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.","https:\u002F\u002Fgithub.com\u002Fgambitph\u002FCimo\u002Fblob\u002Fdevelop\u002F.cursor\u002Fskills\u002Fwriting-for-agents\u002FSKILL.md",[108,111],{"categoryNo":109,"categoryName":110,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":112,"categoryName":113,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000036","内容创作者",[115,116,44,117,118],"writing","writing for agents","editing","documents",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":47},"01M6C228355FYPDSH157J7962Z","wp-project-triage","Use when you need a deterministic inspection of a WordPress repository (plugin\u002Ftheme\u002Fblock theme\u002FWP core\u002FGutenberg\u002Ffull site) including tooling\u002Ftests\u002Fversion hints, and a structured JSON report to guide workflows and guardrails.","https:\u002F\u002Fgithub.com\u002Fgambitph\u002FCimo\u002Fblob\u002Fdevelop\u002F.cursor\u002Fskills\u002Fwp-project-triage\u002FSKILL.md",[],[126,127,46,40,128,44,129,43,42,130,131,39,132,133,134,135,136,36,38],"wp project triage","triage","version","guide","site","json","Guardrails","repository","report","core","plugin",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":146,"publishedAt":47},"01M6C225595ZG6MPCRGKA7FSNZ","wp-plugin-directory-guidelines","Use when reviewing WordPress plugins for GPL compliance, checking license headers or compatibility, evaluating upsell\u002Ffreemium\u002Ftrialware patterns, validating plugin naming or trademark rules, checking plugin slugs, understanding why a plugin was rejected from WordPress.org, or answering any question about the 18 WordPress.org Plugin Directory guidelines — even if the user doesn't mention 'guidelines' explicitly.","https:\u002F\u002Fgithub.com\u002Fgambitph\u002FCimo\u002Fblob\u002Fdevelop\u002F.cursor\u002Fskills\u002Fwp-plugin-directory-guidelines\u002FSKILL.md",[143],{"categoryNo":144,"categoryName":145,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000037","律师与法务",[147,136,148,149,150,151,152,40,153,154,155,156,46,44],"guidelines","directory","wp plugin directory guidelines","user","Rules","question","why","compliance","plugins","license",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":164,"publishedAt":47},"01M6C221V1PYQWWN2CVKSDDHC9","wp-plugin-development","Use when developing WordPress plugins: architecture and hooks, activation\u002Fdeactivation\u002Funinstall, admin UI and Settings API, data storage, cron\u002Ftasks, security (nonces\u002Fcapabilities\u002Fsanitization\u002Fescaping), and release packaging.","https:\u002F\u002Fgithub.com\u002Fgambitph\u002FCimo\u002Fblob\u002Fdevelop\u002F.cursor\u002Fskills\u002Fwp-plugin-development\u002FSKILL.md",[163],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[136,165,166,44,167,168,43,42,169,170,29,171,172,173,174,36,175,46,38,39],"wp plugin development","development","packaging","settings","admin","uninstall","capabilities","release","tasks","architecture","storage",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":186,"publishedAt":47},"01M6C21YFXNYHM5B9ZN6JGCAJW","wp-performance","Use when investigating or improving WordPress performance (backend-only agent): profiling and measurement (WP-CLI profile\u002Fdoctor, Server-Timing, Query Monitor via REST headers), database\u002Fquery optimization, autoloaded options, object caching, cron, HTTP API calls, and safe verification.","https:\u002F\u002Fgithub.com\u002Fgambitph\u002FCimo\u002Fblob\u002Fdevelop\u002F.cursor\u002Fskills\u002Fwp-performance\u002FSKILL.md",[182,183],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":184,"categoryName":185,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[187,188,189,190,191,192,46,193,38,194,195,44,196,197,40,198,29,31,199,200],"performance","wp performance","verification","doctor","monitor","http","safe","database","backend","profile","profiling","cron","Optimization","server",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":213,"publishedAt":47},"01M6C21VGHXMBDNDRZJGDW63CE","wp-patterns","Generate technically correct, design-distinctive WordPress block patterns. Use when creating block patterns, starter page patterns, template patterns, template part patterns, or improving pattern design quality. Covers pattern registration (PHP headers, auto\u002Fmanual), block markup syntax, theme.json design tokens, categories, template types, accessibility, and i18n\u002Fescaping.","https:\u002F\u002Fgithub.com\u002Fgambitph\u002FCimo\u002Fblob\u002Fdevelop\u002F.cursor\u002Fskills\u002Fwp-patterns\u002FSKILL.md",[207,210],{"categoryNo":208,"categoryName":209,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":211,"categoryName":212,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000032","设计师",[214,215,216,217,44,218,219,220,131,221,40,222,223,224,46,225],"wp patterns","syntax","auto","html","quality","page","template","correct","file","generate","accessibility","design"]