claude-plugin-wordpress-manager 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +19 -0
- package/.mcp.json +19 -0
- package/CHANGELOG.md +62 -0
- package/LICENSE +69 -0
- package/README.md +213 -0
- package/agents/wp-content-strategist.md +148 -0
- package/agents/wp-deployment-engineer.md +93 -0
- package/agents/wp-performance-optimizer.md +198 -0
- package/agents/wp-security-auditor.md +161 -0
- package/agents/wp-site-manager.md +109 -0
- package/commands/wp-audit.md +37 -0
- package/commands/wp-backup.md +45 -0
- package/commands/wp-deploy.md +38 -0
- package/commands/wp-setup.md +64 -0
- package/commands/wp-status.md +53 -0
- package/docs/GUIDE.md +1190 -0
- package/hooks/hooks.json +57 -0
- package/hooks/scripts/backup-reminder.sh +29 -0
- package/hooks/scripts/pre-deploy-check.sh +49 -0
- package/package.json +46 -0
- package/scripts/health-check.sh +110 -0
- package/scripts/validate-wp-operation.sh +115 -0
- package/servers/wp-rest-bridge/build/server.d.ts +2 -0
- package/servers/wp-rest-bridge/build/server.js +74 -0
- package/servers/wp-rest-bridge/build/tools/comments.d.ts +227 -0
- package/servers/wp-rest-bridge/build/tools/comments.js +192 -0
- package/servers/wp-rest-bridge/build/tools/index.d.ts +919 -0
- package/servers/wp-rest-bridge/build/tools/index.js +30 -0
- package/servers/wp-rest-bridge/build/tools/media.d.ts +174 -0
- package/servers/wp-rest-bridge/build/tools/media.js +247 -0
- package/servers/wp-rest-bridge/build/tools/plugin-repository.d.ts +62 -0
- package/servers/wp-rest-bridge/build/tools/plugin-repository.js +149 -0
- package/servers/wp-rest-bridge/build/tools/plugins.d.ts +153 -0
- package/servers/wp-rest-bridge/build/tools/plugins.js +175 -0
- package/servers/wp-rest-bridge/build/tools/search.d.ts +44 -0
- package/servers/wp-rest-bridge/build/tools/search.js +44 -0
- package/servers/wp-rest-bridge/build/tools/unified-content.d.ts +328 -0
- package/servers/wp-rest-bridge/build/tools/unified-content.js +628 -0
- package/servers/wp-rest-bridge/build/tools/unified-taxonomies.d.ts +244 -0
- package/servers/wp-rest-bridge/build/tools/unified-taxonomies.js +492 -0
- package/servers/wp-rest-bridge/build/tools/users.d.ts +269 -0
- package/servers/wp-rest-bridge/build/tools/users.js +226 -0
- package/servers/wp-rest-bridge/build/types.d.ts +151 -0
- package/servers/wp-rest-bridge/build/types.js +2 -0
- package/servers/wp-rest-bridge/build/wordpress.d.ts +48 -0
- package/servers/wp-rest-bridge/build/wordpress.js +305 -0
- package/servers/wp-rest-bridge/package.json +27 -0
- package/skills/wordpress-router/SKILL.md +78 -0
- package/skills/wordpress-router/references/decision-tree.md +88 -0
- package/skills/wp-abilities-api/SKILL.md +97 -0
- package/skills/wp-abilities-api/references/php-registration.md +67 -0
- package/skills/wp-abilities-api/references/rest-api.md +13 -0
- package/skills/wp-audit/SKILL.md +114 -0
- package/skills/wp-audit/references/performance-checklist.md +113 -0
- package/skills/wp-audit/references/security-checklist.md +95 -0
- package/skills/wp-audit/references/seo-checklist.md +128 -0
- package/skills/wp-backup/SKILL.md +87 -0
- package/skills/wp-backup/references/backup-strategies.md +116 -0
- package/skills/wp-backup/references/restore-procedures.md +129 -0
- package/skills/wp-block-development/SKILL.md +176 -0
- package/skills/wp-block-development/references/attributes-and-serialization.md +22 -0
- package/skills/wp-block-development/references/block-json.md +49 -0
- package/skills/wp-block-development/references/creating-new-blocks.md +46 -0
- package/skills/wp-block-development/references/debugging.md +36 -0
- package/skills/wp-block-development/references/deprecations.md +24 -0
- package/skills/wp-block-development/references/dynamic-rendering.md +23 -0
- package/skills/wp-block-development/references/inner-blocks.md +25 -0
- package/skills/wp-block-development/references/registration.md +30 -0
- package/skills/wp-block-development/references/supports-and-wrappers.md +18 -0
- package/skills/wp-block-development/references/tooling-and-testing.md +21 -0
- package/skills/wp-block-development/scripts/list_blocks.mjs +121 -0
- package/skills/wp-block-themes/SKILL.md +118 -0
- package/skills/wp-block-themes/references/creating-new-block-theme.md +37 -0
- package/skills/wp-block-themes/references/debugging.md +24 -0
- package/skills/wp-block-themes/references/patterns.md +18 -0
- package/skills/wp-block-themes/references/style-variations.md +14 -0
- package/skills/wp-block-themes/references/templates-and-parts.md +16 -0
- package/skills/wp-block-themes/references/theme-json.md +59 -0
- package/skills/wp-block-themes/scripts/detect_block_themes.mjs +117 -0
- package/skills/wp-content/SKILL.md +103 -0
- package/skills/wp-content/references/content-templates.md +230 -0
- package/skills/wp-content/references/seo-optimization.md +169 -0
- package/skills/wp-deploy/SKILL.md +52 -0
- package/skills/wp-deploy/references/hostinger-deploy.md +51 -0
- package/skills/wp-deploy/references/ssh-deploy.md +63 -0
- package/skills/wp-interactivity-api/SKILL.md +181 -0
- package/skills/wp-interactivity-api/references/debugging.md +29 -0
- package/skills/wp-interactivity-api/references/directives-quickref.md +30 -0
- package/skills/wp-interactivity-api/references/server-side-rendering.md +310 -0
- package/skills/wp-migrate/SKILL.md +100 -0
- package/skills/wp-migrate/references/cross-platform.md +104 -0
- package/skills/wp-migrate/references/hostinger-migration.md +86 -0
- package/skills/wp-performance/SKILL.md +148 -0
- package/skills/wp-performance/references/autoload-options.md +24 -0
- package/skills/wp-performance/references/cron.md +20 -0
- package/skills/wp-performance/references/database.md +20 -0
- package/skills/wp-performance/references/http-api.md +15 -0
- package/skills/wp-performance/references/measurement.md +21 -0
- package/skills/wp-performance/references/object-cache.md +24 -0
- package/skills/wp-performance/references/query-monitor-headless.md +38 -0
- package/skills/wp-performance/references/server-timing.md +22 -0
- package/skills/wp-performance/references/wp-cli-doctor.md +24 -0
- package/skills/wp-performance/references/wp-cli-profile.md +32 -0
- package/skills/wp-performance/scripts/perf_inspect.mjs +128 -0
- package/skills/wp-phpstan/SKILL.md +99 -0
- package/skills/wp-phpstan/references/configuration.md +52 -0
- package/skills/wp-phpstan/references/third-party-classes.md +76 -0
- package/skills/wp-phpstan/references/wordpress-annotations.md +124 -0
- package/skills/wp-phpstan/scripts/phpstan_inspect.mjs +263 -0
- package/skills/wp-playground/SKILL.md +103 -0
- package/skills/wp-playground/references/blueprints.md +36 -0
- package/skills/wp-playground/references/cli-commands.md +39 -0
- package/skills/wp-playground/references/debugging.md +16 -0
- package/skills/wp-plugin-development/SKILL.md +114 -0
- package/skills/wp-plugin-development/references/data-and-cron.md +19 -0
- package/skills/wp-plugin-development/references/debugging.md +19 -0
- package/skills/wp-plugin-development/references/lifecycle.md +33 -0
- package/skills/wp-plugin-development/references/security.md +29 -0
- package/skills/wp-plugin-development/references/settings-api.md +22 -0
- package/skills/wp-plugin-development/references/structure.md +16 -0
- package/skills/wp-plugin-development/scripts/detect_plugins.mjs +122 -0
- package/skills/wp-project-triage/SKILL.md +40 -0
- package/skills/wp-project-triage/references/triage.schema.json +143 -0
- package/skills/wp-project-triage/scripts/detect_wp_project.mjs +592 -0
- package/skills/wp-rest-api/SKILL.md +116 -0
- package/skills/wp-rest-api/references/authentication.md +18 -0
- package/skills/wp-rest-api/references/custom-content-types.md +20 -0
- package/skills/wp-rest-api/references/discovery-and-params.md +20 -0
- package/skills/wp-rest-api/references/responses-and-fields.md +30 -0
- package/skills/wp-rest-api/references/routes-and-endpoints.md +36 -0
- package/skills/wp-rest-api/references/schema.md +22 -0
- package/skills/wp-wpcli-and-ops/SKILL.md +125 -0
- package/skills/wp-wpcli-and-ops/references/automation.md +30 -0
- package/skills/wp-wpcli-and-ops/references/cron-and-cache.md +23 -0
- package/skills/wp-wpcli-and-ops/references/debugging.md +17 -0
- package/skills/wp-wpcli-and-ops/references/multisite.md +22 -0
- package/skills/wp-wpcli-and-ops/references/packages-and-updates.md +22 -0
- package/skills/wp-wpcli-and-ops/references/safety.md +30 -0
- package/skills/wp-wpcli-and-ops/references/search-replace.md +40 -0
- package/skills/wp-wpcli-and-ops/scripts/wpcli_inspect.mjs +90 -0
- package/skills/wpds/SKILL.md +60 -0
- package/skills/wpds/references/wpds-mcp-setup.md +59 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
# WordPress Content Templates
|
|
2
|
+
|
|
3
|
+
## Blog Post Template
|
|
4
|
+
|
|
5
|
+
### Standard Blog Post (800-1500 words)
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Title: [Primary Keyword] — [Compelling Hook]
|
|
9
|
+
Slug: primary-keyword-phrase
|
|
10
|
+
Excerpt: [Meta description, 120-160 chars, includes keyword and CTA]
|
|
11
|
+
Categories: [1 primary category]
|
|
12
|
+
Tags: [3-5 specific tags]
|
|
13
|
+
Featured Image: [Relevant, optimized, with alt text]
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
[Opening paragraph — hook the reader, include primary keyword in first 2 sentences]
|
|
18
|
+
|
|
19
|
+
## [H2: First Major Point — include secondary keyword]
|
|
20
|
+
|
|
21
|
+
[2-3 paragraphs expanding the point]
|
|
22
|
+
|
|
23
|
+
[Image or list to break up text]
|
|
24
|
+
|
|
25
|
+
## [H2: Second Major Point — include secondary keyword]
|
|
26
|
+
|
|
27
|
+
[2-3 paragraphs]
|
|
28
|
+
|
|
29
|
+
### [H3: Supporting detail if needed]
|
|
30
|
+
|
|
31
|
+
[1-2 paragraphs]
|
|
32
|
+
|
|
33
|
+
## [H2: Third Major Point]
|
|
34
|
+
|
|
35
|
+
[2-3 paragraphs]
|
|
36
|
+
|
|
37
|
+
## Conclusion
|
|
38
|
+
|
|
39
|
+
[Summary of key points]
|
|
40
|
+
|
|
41
|
+
[Call to action — what should the reader do next?]
|
|
42
|
+
|
|
43
|
+
[Internal link to related content]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Listicle Post (600-1200 words)
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
Title: [Number] [Keyword] [Benefit/Hook]
|
|
50
|
+
Example: "7 Benefits of Cactus Water for Daily Hydration"
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
[Intro paragraph — what will the reader learn?]
|
|
55
|
+
|
|
56
|
+
## 1. [First Item — strongest/most interesting]
|
|
57
|
+
|
|
58
|
+
[2-3 sentences explaining]
|
|
59
|
+
|
|
60
|
+
## 2. [Second Item]
|
|
61
|
+
|
|
62
|
+
[2-3 sentences]
|
|
63
|
+
|
|
64
|
+
[... continue for all items ...]
|
|
65
|
+
|
|
66
|
+
## Final Thoughts
|
|
67
|
+
|
|
68
|
+
[Brief summary + CTA]
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### How-To Guide (1000-2000 words)
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
Title: How to [Achieve Goal] — [Clarifying Detail]
|
|
75
|
+
Example: "How to Set Up WordPress Caching — A Complete Guide"
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
[Intro — what problem does this solve?]
|
|
80
|
+
|
|
81
|
+
## What You'll Need
|
|
82
|
+
|
|
83
|
+
- [Prerequisite 1]
|
|
84
|
+
- [Prerequisite 2]
|
|
85
|
+
|
|
86
|
+
## Step 1: [First Action]
|
|
87
|
+
|
|
88
|
+
[Detailed explanation with screenshots if applicable]
|
|
89
|
+
|
|
90
|
+
## Step 2: [Second Action]
|
|
91
|
+
|
|
92
|
+
[Detailed explanation]
|
|
93
|
+
|
|
94
|
+
[... continue for all steps ...]
|
|
95
|
+
|
|
96
|
+
## Troubleshooting
|
|
97
|
+
|
|
98
|
+
### [Common Issue 1]
|
|
99
|
+
[Solution]
|
|
100
|
+
|
|
101
|
+
### [Common Issue 2]
|
|
102
|
+
[Solution]
|
|
103
|
+
|
|
104
|
+
## Summary
|
|
105
|
+
|
|
106
|
+
[Recap of steps + link to related guides]
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Page Templates
|
|
110
|
+
|
|
111
|
+
### Landing Page
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
Title: [Product/Service Name] — [Value Proposition]
|
|
115
|
+
Slug: product-or-service-name
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
[Hero Section]
|
|
120
|
+
# [Headline with primary keyword]
|
|
121
|
+
[Subheadline — key benefit in 1 sentence]
|
|
122
|
+
[CTA Button]
|
|
123
|
+
|
|
124
|
+
[Social Proof]
|
|
125
|
+
## Trusted by [X] customers
|
|
126
|
+
[Testimonials or logos]
|
|
127
|
+
|
|
128
|
+
[Features/Benefits]
|
|
129
|
+
## Why Choose [Product]
|
|
130
|
+
### [Benefit 1]
|
|
131
|
+
[Brief explanation]
|
|
132
|
+
|
|
133
|
+
### [Benefit 2]
|
|
134
|
+
[Brief explanation]
|
|
135
|
+
|
|
136
|
+
### [Benefit 3]
|
|
137
|
+
[Brief explanation]
|
|
138
|
+
|
|
139
|
+
[Detailed Explanation]
|
|
140
|
+
## How It Works
|
|
141
|
+
[Step-by-step or detailed description]
|
|
142
|
+
|
|
143
|
+
[FAQ Section]
|
|
144
|
+
## Frequently Asked Questions
|
|
145
|
+
### [Question 1]
|
|
146
|
+
[Answer]
|
|
147
|
+
|
|
148
|
+
[Final CTA]
|
|
149
|
+
## Get Started Today
|
|
150
|
+
[CTA with urgency or benefit reminder]
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### About Page
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
Title: About [Company/Brand Name]
|
|
157
|
+
Slug: about
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Our Story
|
|
162
|
+
[Origin story — authentic, concise]
|
|
163
|
+
|
|
164
|
+
## Our Mission
|
|
165
|
+
[Mission statement — 1-2 sentences]
|
|
166
|
+
|
|
167
|
+
## Our Values
|
|
168
|
+
### [Value 1]
|
|
169
|
+
[Brief explanation]
|
|
170
|
+
### [Value 2]
|
|
171
|
+
[Brief explanation]
|
|
172
|
+
|
|
173
|
+
## The Team
|
|
174
|
+
[Team member profiles with photos]
|
|
175
|
+
|
|
176
|
+
## Contact Us
|
|
177
|
+
[Link to contact page]
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Custom Post Type Content
|
|
181
|
+
|
|
182
|
+
### Product Page (for WooCommerce or custom CPT)
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
Title: [Product Name] — [Key Feature]
|
|
186
|
+
Slug: product-name
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
[Product Image Gallery]
|
|
191
|
+
|
|
192
|
+
## [Product Name]
|
|
193
|
+
[1-2 sentence product summary]
|
|
194
|
+
|
|
195
|
+
### Key Features
|
|
196
|
+
- [Feature 1]
|
|
197
|
+
- [Feature 2]
|
|
198
|
+
- [Feature 3]
|
|
199
|
+
|
|
200
|
+
### Ingredients / Specifications
|
|
201
|
+
[Detailed specs table]
|
|
202
|
+
|
|
203
|
+
### How to Use
|
|
204
|
+
[Usage instructions]
|
|
205
|
+
|
|
206
|
+
### Reviews
|
|
207
|
+
[Customer reviews section]
|
|
208
|
+
|
|
209
|
+
[CTA: Add to Cart / Buy Now]
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## Content Quality Checklist
|
|
213
|
+
|
|
214
|
+
Before publishing any content:
|
|
215
|
+
|
|
216
|
+
- [ ] Title includes primary keyword (under 60 chars)
|
|
217
|
+
- [ ] Excerpt/meta description set (120-160 chars)
|
|
218
|
+
- [ ] Clean slug with keyword
|
|
219
|
+
- [ ] H1 is unique on the page
|
|
220
|
+
- [ ] H2/H3 hierarchy is logical
|
|
221
|
+
- [ ] Primary keyword in first paragraph
|
|
222
|
+
- [ ] At least 2 internal links
|
|
223
|
+
- [ ] At least 1 external link to authority source
|
|
224
|
+
- [ ] All images have alt text
|
|
225
|
+
- [ ] Featured image set
|
|
226
|
+
- [ ] Category assigned (not "Uncategorized")
|
|
227
|
+
- [ ] 3-5 relevant tags assigned
|
|
228
|
+
- [ ] Content length meets minimum (300+ for posts, 500+ for pillar)
|
|
229
|
+
- [ ] Proofread for spelling and grammar
|
|
230
|
+
- [ ] CTA present
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# On-Page SEO Optimization Patterns for WordPress
|
|
2
|
+
|
|
3
|
+
## Title Tag Optimization
|
|
4
|
+
|
|
5
|
+
### Formula
|
|
6
|
+
```
|
|
7
|
+
[Primary Keyword] — [Benefit/Hook] | [Brand Name]
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
### Rules
|
|
11
|
+
- Maximum 60 characters (Google truncates at ~60)
|
|
12
|
+
- Primary keyword at the beginning
|
|
13
|
+
- Brand name at the end (optional, adds trust)
|
|
14
|
+
- Each page title must be unique across the site
|
|
15
|
+
- Avoid keyword stuffing
|
|
16
|
+
|
|
17
|
+
### Examples
|
|
18
|
+
- Good: "Cactus Water Benefits — Zero Calorie Hydration | DolceZero"
|
|
19
|
+
- Bad: "Cactus Water Benefits | Best Cactus Water | Buy Cactus Water"
|
|
20
|
+
|
|
21
|
+
## Meta Description (Excerpt)
|
|
22
|
+
|
|
23
|
+
### Formula
|
|
24
|
+
```
|
|
25
|
+
[Action verb] [what the user gets]. [Key detail]. [CTA].
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Rules
|
|
29
|
+
- 120-160 characters (Google truncates at ~160)
|
|
30
|
+
- Include primary keyword naturally
|
|
31
|
+
- Include a call to action
|
|
32
|
+
- Make it compelling (this is your "ad copy" in search results)
|
|
33
|
+
- Each page must have a unique meta description
|
|
34
|
+
|
|
35
|
+
### Examples
|
|
36
|
+
- Good: "Discover the natural benefits of Sicilian cactus water. Zero calories, rich in antioxidants. Try DolceZero today."
|
|
37
|
+
- Bad: "Welcome to our website. We sell cactus water products. Click here."
|
|
38
|
+
|
|
39
|
+
## URL Slug Optimization
|
|
40
|
+
|
|
41
|
+
### Rules
|
|
42
|
+
- Use lowercase, hyphens between words
|
|
43
|
+
- Include primary keyword
|
|
44
|
+
- Remove stop words (a, the, in, of, for, etc.)
|
|
45
|
+
- Keep under 75 characters
|
|
46
|
+
- Never change an existing indexed slug (use 301 redirect)
|
|
47
|
+
|
|
48
|
+
### Examples
|
|
49
|
+
- Good: `/cactus-water-benefits`
|
|
50
|
+
- Bad: `/the-amazing-benefits-of-drinking-cactus-water-for-your-health-2026`
|
|
51
|
+
|
|
52
|
+
## Heading Hierarchy
|
|
53
|
+
|
|
54
|
+
### Structure
|
|
55
|
+
```
|
|
56
|
+
H1: Page title (1 per page, contains primary keyword)
|
|
57
|
+
H2: Major sections (2-6 per page, secondary keywords)
|
|
58
|
+
H3: Sub-sections (as needed, long-tail keywords)
|
|
59
|
+
H4: Detail level (rarely needed)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Rules
|
|
63
|
+
- Only one H1 per page
|
|
64
|
+
- Never skip heading levels (H1 → H3 without H2)
|
|
65
|
+
- Headings should outline the content (scannable)
|
|
66
|
+
- Include keywords naturally (don't force)
|
|
67
|
+
|
|
68
|
+
## Internal Linking Strategy
|
|
69
|
+
|
|
70
|
+
### Pillar-Cluster Model
|
|
71
|
+
```
|
|
72
|
+
Pillar Page (broad topic, 2000+ words)
|
|
73
|
+
├── Cluster Post 1 (specific subtopic)
|
|
74
|
+
├── Cluster Post 2 (specific subtopic)
|
|
75
|
+
├── Cluster Post 3 (specific subtopic)
|
|
76
|
+
└── Cluster Post 4 (specific subtopic)
|
|
77
|
+
|
|
78
|
+
All cluster posts link to pillar page
|
|
79
|
+
Pillar page links to all cluster posts
|
|
80
|
+
Cluster posts link to each other where relevant
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Link Placement Rules
|
|
84
|
+
- 2-3 internal links per 1000 words minimum
|
|
85
|
+
- Anchor text should be descriptive (not "click here")
|
|
86
|
+
- Link to relevant, high-value pages
|
|
87
|
+
- Link to newer content from older content (update older posts)
|
|
88
|
+
- Place important links above the fold
|
|
89
|
+
|
|
90
|
+
## Image SEO
|
|
91
|
+
|
|
92
|
+
### File Naming
|
|
93
|
+
```
|
|
94
|
+
Good: cactus-water-bottle-dolcezero.webp
|
|
95
|
+
Bad: IMG_20260226_123456.jpg
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Alt Text
|
|
99
|
+
```
|
|
100
|
+
Good: "DolceZero cactus water bottle in three sweetness levels"
|
|
101
|
+
Bad: "image" or "" (empty)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Optimization
|
|
105
|
+
- Format: WebP preferred (40-60% smaller than JPEG)
|
|
106
|
+
- Max width: 1200px for full-width, 800px for in-content
|
|
107
|
+
- Max file size: 200KB for hero, 100KB for in-content
|
|
108
|
+
- Always include width and height attributes (prevents CLS)
|
|
109
|
+
|
|
110
|
+
## Structured Data for WordPress
|
|
111
|
+
|
|
112
|
+
### Article Schema (blog posts)
|
|
113
|
+
```json
|
|
114
|
+
{
|
|
115
|
+
"@context": "https://schema.org",
|
|
116
|
+
"@type": "Article",
|
|
117
|
+
"headline": "Title",
|
|
118
|
+
"author": { "@type": "Person", "name": "Author" },
|
|
119
|
+
"datePublished": "2026-02-26",
|
|
120
|
+
"image": "featured-image-url"
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Product Schema (product pages)
|
|
125
|
+
```json
|
|
126
|
+
{
|
|
127
|
+
"@context": "https://schema.org",
|
|
128
|
+
"@type": "Product",
|
|
129
|
+
"name": "Product Name",
|
|
130
|
+
"description": "Product description",
|
|
131
|
+
"offers": {
|
|
132
|
+
"@type": "Offer",
|
|
133
|
+
"price": "9.99",
|
|
134
|
+
"priceCurrency": "EUR"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### FAQ Schema (FAQ sections)
|
|
140
|
+
```json
|
|
141
|
+
{
|
|
142
|
+
"@context": "https://schema.org",
|
|
143
|
+
"@type": "FAQPage",
|
|
144
|
+
"mainEntity": [{
|
|
145
|
+
"@type": "Question",
|
|
146
|
+
"name": "Question text?",
|
|
147
|
+
"acceptedAnswer": {
|
|
148
|
+
"@type": "Answer",
|
|
149
|
+
"text": "Answer text."
|
|
150
|
+
}
|
|
151
|
+
}]
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Most SEO plugins (Yoast, Rank Math) generate structured data automatically. Verify with Google Rich Results Test.
|
|
156
|
+
|
|
157
|
+
## Content Freshness
|
|
158
|
+
|
|
159
|
+
### Update Strategy
|
|
160
|
+
- Review and update top-performing posts every 6 months
|
|
161
|
+
- Update statistics and data references annually
|
|
162
|
+
- Add new sections to pillar content as topics evolve
|
|
163
|
+
- Re-optimize meta descriptions for underperforming pages
|
|
164
|
+
- Update internal links when publishing new related content
|
|
165
|
+
|
|
166
|
+
### Signals to Search Engines
|
|
167
|
+
- Modified date in schema (automatic in WordPress)
|
|
168
|
+
- Meaningful content changes (not just date changes)
|
|
169
|
+
- New sections, updated data, additional depth
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wp-deploy
|
|
3
|
+
description: This skill should be used when the user asks to "deploy a plugin",
|
|
4
|
+
"deploy a theme", "push to production", "deploy to WordPress", "deploy to Hostinger",
|
|
5
|
+
or mentions deployment of WordPress components. Provides step-by-step deployment
|
|
6
|
+
workflows for Hostinger-hosted and SSH-accessible WordPress sites.
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# WordPress Deployment Skill
|
|
11
|
+
|
|
12
|
+
## Overview
|
|
13
|
+
|
|
14
|
+
Guides deployment of WordPress plugins, themes, and static sites to production servers. Supports Hostinger MCP (preferred for Hostinger hosting) and SSH/SFTP (universal).
|
|
15
|
+
|
|
16
|
+
## When to Use
|
|
17
|
+
|
|
18
|
+
- User asks to deploy a plugin or theme
|
|
19
|
+
- User wants to push changes to a WordPress site
|
|
20
|
+
- User needs to migrate a WordPress installation
|
|
21
|
+
- User wants to set up a deployment pipeline
|
|
22
|
+
|
|
23
|
+
## Deployment Decision Tree
|
|
24
|
+
|
|
25
|
+
1. **Is the target Hostinger-hosted?**
|
|
26
|
+
- Yes → Use Hostinger MCP tools (`hosting_deployWordpressPlugin`, `hosting_deployWordpressTheme`)
|
|
27
|
+
- No → Use SSH/SFTP deployment
|
|
28
|
+
|
|
29
|
+
2. **What are you deploying?**
|
|
30
|
+
- Plugin → Package plugin directory, deploy, activate
|
|
31
|
+
- Theme → Package theme directory, deploy, optionally activate
|
|
32
|
+
- Static site → Archive build output, deploy
|
|
33
|
+
- Full site → Export DB + files, use `hosting_importWordpressWebsite`
|
|
34
|
+
|
|
35
|
+
## Pre-Deployment Steps
|
|
36
|
+
|
|
37
|
+
1. **Verify files** - Check all required files exist and are valid
|
|
38
|
+
2. **Check for secrets** - Ensure no credentials are in deployment files
|
|
39
|
+
3. **Confirm target** - Verify which site and environment (staging/production)
|
|
40
|
+
4. **Backup** - Ensure a rollback path exists
|
|
41
|
+
|
|
42
|
+
## Post-Deployment Steps
|
|
43
|
+
|
|
44
|
+
1. **Verify** - Check the deployed component appears in WordPress
|
|
45
|
+
2. **Test** - Verify core functionality works
|
|
46
|
+
3. **Report** - Summarize what was deployed and where
|
|
47
|
+
|
|
48
|
+
## Additional Resources
|
|
49
|
+
|
|
50
|
+
### Reference Files
|
|
51
|
+
- **`references/hostinger-deploy.md`** - Hostinger MCP deployment details
|
|
52
|
+
- **`references/ssh-deploy.md`** - SSH/SFTP deployment procedures
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Hostinger MCP Deployment Reference
|
|
2
|
+
|
|
3
|
+
## Plugin Deployment
|
|
4
|
+
|
|
5
|
+
### Tool: `hosting_deployWordpressPlugin`
|
|
6
|
+
Deploys a WordPress plugin from a local directory to a Hostinger-hosted site.
|
|
7
|
+
|
|
8
|
+
**Input:** Local directory path containing plugin files
|
|
9
|
+
**Process:** Uploads all files, triggers server-side deployment
|
|
10
|
+
**Post-deploy:** Use `activate_plugin` via WP REST Bridge to activate
|
|
11
|
+
|
|
12
|
+
### Example workflow:
|
|
13
|
+
```
|
|
14
|
+
1. Verify plugin: php -l main-plugin-file.php
|
|
15
|
+
2. Deploy: hosting_deployWordpressPlugin(directory)
|
|
16
|
+
3. Verify: list_plugins → check plugin appears
|
|
17
|
+
4. Activate: activate_plugin(plugin_slug)
|
|
18
|
+
5. Test: visit site to confirm functionality
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Theme Deployment
|
|
22
|
+
|
|
23
|
+
### Tool: `hosting_deployWordpressTheme`
|
|
24
|
+
Deploys a WordPress theme from a local directory with optional activation.
|
|
25
|
+
|
|
26
|
+
**Input:** Local directory path + optional activate flag
|
|
27
|
+
**Process:** Uploads all theme files, triggers deployment, activates if requested
|
|
28
|
+
|
|
29
|
+
### Required theme files:
|
|
30
|
+
- `style.css` (with valid theme headers)
|
|
31
|
+
- `index.php`
|
|
32
|
+
- `functions.php` (recommended)
|
|
33
|
+
|
|
34
|
+
## Static Site Deployment
|
|
35
|
+
|
|
36
|
+
### Tool: `hosting_deployStaticWebsite`
|
|
37
|
+
Deploys pre-built static HTML/CSS/JS from an archive.
|
|
38
|
+
|
|
39
|
+
**Supported formats:** zip, tar, tar.gz, tgz
|
|
40
|
+
**Process:** Upload archive → extract to web root → serve
|
|
41
|
+
|
|
42
|
+
## Site Import
|
|
43
|
+
|
|
44
|
+
### Tool: `hosting_importWordpressWebsite`
|
|
45
|
+
Full WordPress site migration/restore.
|
|
46
|
+
|
|
47
|
+
**Input:**
|
|
48
|
+
- Archive file (zip/tar.gz) with WordPress files
|
|
49
|
+
- SQL database dump file
|
|
50
|
+
|
|
51
|
+
**WARNING:** This overwrites the existing installation.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# SSH/SFTP Deployment Reference
|
|
2
|
+
|
|
3
|
+
## Prerequisites
|
|
4
|
+
|
|
5
|
+
1. SSH key configured in `~/.ssh/config`
|
|
6
|
+
2. SSH access verified: `ssh user@host 'echo ok'`
|
|
7
|
+
3. Know the WordPress installation path (typically `/home/user/htdocs/` on Hostinger)
|
|
8
|
+
|
|
9
|
+
## Plugin Deployment via SSH
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# 1. Package the plugin
|
|
13
|
+
tar -czf /tmp/plugin-name.tar.gz -C /path/to/plugin-dir .
|
|
14
|
+
|
|
15
|
+
# 2. Upload to server
|
|
16
|
+
scp /tmp/plugin-name.tar.gz user@host:/tmp/
|
|
17
|
+
|
|
18
|
+
# 3. Extract to plugins directory
|
|
19
|
+
ssh user@host 'mkdir -p /path/to/wp-content/plugins/plugin-name && tar xzf /tmp/plugin-name.tar.gz -C /path/to/wp-content/plugins/plugin-name'
|
|
20
|
+
|
|
21
|
+
# 4. Set correct permissions
|
|
22
|
+
ssh user@host 'chmod -R 755 /path/to/wp-content/plugins/plugin-name'
|
|
23
|
+
|
|
24
|
+
# 5. Clean up
|
|
25
|
+
ssh user@host 'rm /tmp/plugin-name.tar.gz'
|
|
26
|
+
rm /tmp/plugin-name.tar.gz
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Theme Deployment via SSH
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Same pattern as plugin but targeting themes directory
|
|
33
|
+
tar -czf /tmp/theme-name.tar.gz -C /path/to/theme-dir .
|
|
34
|
+
scp /tmp/theme-name.tar.gz user@host:/tmp/
|
|
35
|
+
ssh user@host 'mkdir -p /path/to/wp-content/themes/theme-name && tar xzf /tmp/theme-name.tar.gz -C /path/to/wp-content/themes/theme-name'
|
|
36
|
+
ssh user@host 'chmod -R 755 /path/to/wp-content/themes/theme-name'
|
|
37
|
+
ssh user@host 'rm /tmp/theme-name.tar.gz'
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Hostinger-Specific Paths
|
|
41
|
+
|
|
42
|
+
- Web root: `/home/<username>/htdocs/<domain>/`
|
|
43
|
+
- Plugins: `/home/<username>/htdocs/<domain>/wp-content/plugins/`
|
|
44
|
+
- Themes: `/home/<username>/htdocs/<domain>/wp-content/themes/`
|
|
45
|
+
- Uploads: `/home/<username>/htdocs/<domain>/wp-content/uploads/`
|
|
46
|
+
|
|
47
|
+
## SSH Config for Hostinger
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
Host opencactus-hostinger
|
|
51
|
+
HostName <ip-or-hostname>
|
|
52
|
+
User <hostinger-username>
|
|
53
|
+
IdentityFile ~/.ssh/hostinger_opencactus_20250904
|
|
54
|
+
IdentitiesOnly yes
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Rollback via SSH
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# If you backed up before deploying:
|
|
61
|
+
ssh user@host 'mv /path/to/wp-content/plugins/plugin-name /path/to/wp-content/plugins/plugin-name.broken'
|
|
62
|
+
ssh user@host 'mv /path/to/wp-content/plugins/plugin-name.backup /path/to/wp-content/plugins/plugin-name'
|
|
63
|
+
```
|