跳到正文
cccskills
免费在 GitHub 公开

custom-post-type-architect

Use when the user asks to create a custom post type, build a portfolio, set up case studies, add team members, events, or podcast episodes, or says 'scaffold a CPT'. Creates the post type plus supporting taxonomies, an ACF field group, sample entries, and a builder-specific single template suggestion.

中文简介正在准备中。当前显示原文说明。

集成工具WordPress
查看安装方法

包含的文件(1)

  • SKILL.md8.1 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Custom Post Type Architect

Version: 1.0.0 Updated: 2026-05-24 Category: content-creation Status: stable Requires: Respira for WordPress plugin 7.1+ + MCP server


Description

Given a brief — "I need a portfolio with case studies" or "we run a podcast and want each episode to be its own page" — design and create the WordPress custom post type, supporting taxonomies, and ACF field group end to end. Uses the new v7.1 MCP tools: respira_create_post_type, respira_create_taxonomy, respira_create_acf_field_group.

The output is a fully wired content architecture, ready to use:

  1. The CPT itself (labels, supports, public-vs-private, has_archive, REST exposure)
  2. Supporting taxonomies (e.g. industries for case studies, seasons for podcast episodes)
  3. ACF field group bound to the CPT (custom fields the editor sees)
  4. 1–2 sample entries so the agent can verify the rendering
  5. Builder-aware single-template suggestion for the active builder

When to Use

  • Setting up a portfolio, case studies, team members, events, podcast episodes, recipes, properties, locations, products-but-not-WooCommerce, FAQs, testimonials, courses, lessons, or any structured content type
  • Migrating away from custom-fields-in-posts to a proper content type
  • Auditing an existing site that's overloaded the default "post" type with non-blog content

Trigger Phrases

  • "create a custom post type"
  • "build a portfolio"
  • "set up a case study type"
  • "add a team members section"
  • "scaffold a CPT"
  • "create a podcast post type"
  • "build an events section"
  • "we need a new content type"

Execution Workflow

Step 1 — Confirm site + builder

Call respira_get_active_site and respira_get_builder_info. The builder choice affects Step 6 (template suggestion).

Step 2 — Understand the brief

Ask the user three short questions if not already clear from their request:

  1. What is the content? (case studies, podcast episodes, team, events, ...)
  2. How is it organized? (categories, tags, custom taxonomies — e.g. case studies organized by industry + service-type)
  3. What fields does each entry need? (e.g. case study: client name, hero image, deliverables, outcomes, before/after metrics, related case studies)

If the user can't articulate the fields, propose a default set based on the content type. Default sets:

  • Case studies: client name, industry (taxonomy), service-type (taxonomy), hero image, brief, deliverables, outcomes, key metrics (3-5), client logo, related case studies (relationship)
  • Team members: name, role, bio, headshot, social links (LinkedIn / X / personal site), department (taxonomy)
  • Events: title, date/time, location, address, virtual/in-person, registration URL, capacity, hero image
  • Podcast episodes: title, episode number, season (taxonomy), audio file URL, duration, show notes, guest name, guest links
  • Properties (real estate): address, price, bedrooms, bathrooms, sqm, status (taxonomy: for-sale / sold / under-offer), gallery, neighborhood (taxonomy)
  • Recipes: title, prep time, cook time, servings, ingredients (repeater), steps (repeater), category (taxonomy), cuisine (taxonomy), difficulty, dietary tags

Step 3 — Design the CPT shape

Output the proposed shape for user review:

## Proposed CPT: `case_study`

- **Singular label:** Case Study
- **Plural label:** Case Studies
- **Menu icon:** dashicons-portfolio
- **Public:** yes
- **Has archive:** yes (URL: /case-studies/)
- **Supports:** title, editor, thumbnail, excerpt, revisions
- **REST API:** exposed (so the builder + Respira can read/write)
- **Hierarchical:** no
- **Show in admin menu:** yes, position 25 (under Pages)

## Supporting taxonomies

1. `case_study_industry` — Industries (e.g. SaaS, e-commerce, healthcare)
2. `case_study_service` — Service types (e.g. branding, website, copywriting)

## ACF field group: `Case Study Fields`

- Hero image (image, required)
- Client name (text, required)
- Brief (textarea)
- Deliverables (repeater — title + description)
- Outcomes (repeater — metric name + before + after)
- Client logo (image)
- Related case studies (relationship → case_study)

Wait for confirmation. The user might want to add or remove fields.

Step 4 — Create the CPT + taxonomies

After confirmation, run the create calls:

  1. respira_create_post_type — creates the CPT with the proposed shape
  2. respira_create_taxonomy — once per supporting taxonomy, bound to the CPT
  3. respira_create_acf_field_group — the ACF field group, bound to the CPT via location rules

Each call should report back: "✓ Created CPT case_study" / "✓ Created taxonomy case_study_industry" / "✓ Created ACF field group with 8 fields bound to case_study."

Step 5 — Generate sample entries

Create 1–2 sample entries so the user can immediately see the CPT working in the admin and the editor renders correctly. Use respira_create_custom_post with realistic but generic content (no real customer names — generic personas like "BrandQ" or "agency-A").

The sample entries should populate every ACF field so the user can see the full shape.

Step 6 — Suggest a builder-specific single template

Based on the active builder, suggest where to create the single template:

  • Bricks: "Create a single template at Templates → Add New → Type: Single → Conditions: Post Type = case_study. Suggested elements: ..."
  • Elementor: "Create a single template at Templates → Theme Builder → Single → Add Conditions → Posts: case_study. Suggested widgets: ..."
  • Divi: "Create a Theme Builder template at Divi → Theme Builder → Add Template → Posts: case_study. Suggested modules: ..."
  • Gutenberg / FSE theme: "Create a single-case_study.html template in the theme or via Appearance → Editor → Templates → Add → Single Item: Case Study."
  • Oxygen / Breakdance: "Create a Single template targeting case_study."

If the user wants to scaffold the template now, offer to build it: that's a separate skill flow (use respira_build_page against the single template surface for the chosen builder).

Step 7 — Verify

Output a summary with:

  • The CPT slug + admin URL (/wp-admin/edit.php?post_type=case_study)
  • The archive URL on the front-end (/case-studies/)
  • The 2 sample entry URLs
  • A note about whether the single template was scaffolded or left for the user

Hard rules

  • Always ask before creating. The CPT shape preview in Step 3 is mandatory. Customers will be writing into this CPT for years — get it right the first time.
  • Use snake_case slugs (case_study, case_study_industry) — never spaces or hyphens. WordPress CPT slugs have a 20-character hard limit.
  • Always expose show_in_rest so the builder + Respira can read/write the CPT. If show_in_rest is false, the post type is invisible to the REST API and most modern builders break on it.
  • Never name a CPT post, page, attachment, revision, nav_menu_item, custom_css, customize_changeset, oembed_cache, user_request, wp_block, wp_template, wp_template_part, wp_global_styles, wp_navigation — these are reserved.
  • ACF field group location rules must bind to the CPT (post_type == case_study), not to a category or template. Wrong location rule = fields invisible in the admin.
  • Sample entries use generic personas. Never use real customer names from memory or any other source.

Telemetry

Records: site URL hash, CPT slug created, taxonomy count, ACF field count, builder active, sample entries created, success/failure. No CPT names, no field values, no content sent.

Endpoint: POST https://www.respira.press/api/skills/track-usage

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Use when the user asks for a client report, a monthly or activity report, a case study draft, or says 'what did i ship this month'. Turns the site audit log into a written report in one of six framings: agency client report, case study, internal recap, testimonial draft, build-in-public, personal recap.

中文简介正在准备中。当前显示原文说明。

respira-press/agent-skills-wordpress482026年10月18日 更新

Use on any page build, redesign, or 'make it look better' request on a site that has (or needs) a saved Art Direction. Loads the direction before the first element is written, plans tokens in two passes against the direction's donts and the known AI-default aesthetics, builds with tokens preserved, checks the result with respira_check_design, and mints a live preview. Also the import lane for Claude Design output and other design-system documents.

中文简介正在准备中。当前显示原文说明。

respira-press/agent-skills-wordpress482026年10月18日 更新

Use when the user says 'extract my brand voice', 'what is my writing style', or 'analyze my tone', or before any skill that writes copy for the site. Reads 5-10 published posts and persists tone, lexicon, sentence patterns, formality, signature phrases, and phrases the site never uses.

中文简介正在准备中。当前显示原文说明。

respira-press/agent-skills-wordpress482026年10月18日 更新

Use when building an Elementor page by hand with respira_build_page: from a brief, a screenshot, a mockup, or a design you must restate as Elementor settings. Covers the template, the styles Elementor never inherits, reading a design's computed values instead of guessing, buttons, spacing, mobile, and checking the render. For a finished HTML file, use html-to-page instead.

中文简介正在准备中。当前显示原文说明。

respira-press/agent-skills-wordpress482026年10月18日 更新

Use when building or rebuilding a page, header, footer, or template on an Oxygen 6 (Jenga) site, or when a previous attempt produced a blank page, one raw HTML block, or 'Unknown element'. Hands the agent the Oxygen 6 element schemas and the Template Content Area rule. Not for Oxygen Classic.

中文简介正在准备中。当前显示原文说明。

respira-press/agent-skills-wordpress482026年10月18日 更新

Use when the user says 'export my site', 'backup my pages before editing', 'download my content locally', or 'migrate content to my other site'. Exports pages, posts, and custom posts to portable local packages with builder data, media, and markdown, then imports elsewhere with ID remapping.

中文简介正在准备中。当前显示原文说明。

respira-press/agent-skills-wordpress482026年10月18日 更新

查看 respira-press 的全部技能

报告此技能的问题