Agent skill
wordpress-admin
Full WordPress site management - create pages/posts, configure SEO (Yoast), upload media, manage settings. Use when creating content, setting up SEO, or managing any WordPress site.
Install this agent skill to your Project
npx add-skill https://github.com/aiskillstore/marketplace/tree/main/skills/crazyswami/wordpress-admin
SKILL.md
WordPress Admin Skill
Complete WordPress site management via WP-CLI (local Docker) and REST API (production sites).
When to Use This Skill
Invoke this skill when you need to:
- Create pages or posts in WordPress
- Set up SEO (focus keyword, meta description, title)
- Upload and manage media/images
- Configure WordPress settings
- Check or recommend plugins
- Manage the local WordPress Docker environment
Available Sites
CSR Development (Production)
- Site URL: https://csrdevelopment.com
- REST API: https://csrdevelopment.com/wp-json/wp/v2
- FTP Host: ftp.csrdevelopment.com
- FTP User: alfonso@csrdevelopment.com
- Theme Path: /wp-content/themes/csr-theme
- Local Files: /root/csrdevelopment.com/csrdevelopment.com/public_html
Local WordPress (Docker)
- Site URL: https://local2.hustletogether.com
- Container: wordpress-local-wordpress-1
- WP-CLI:
docker exec wordpress-local-wordpress-1 wp <command> --allow-root - Admin: https://local2.hustletogether.com/wp-admin
- Credentials: admin / admin123
Workflows
Create a Page
Local (Docker):
docker exec wordpress-local-wordpress-1 wp post create \
--post_type=page \
--post_title="Privacy Policy" \
--post_name="privacy-policy" \
--post_status="publish" \
--allow-root
Production (REST API):
curl -X POST "https://csrdevelopment.com/wp-json/wp/v2/pages" \
-H "Authorization: Basic BASE64_CREDENTIALS" \
-H "Content-Type: application/json" \
-d '{
"title": "Privacy Policy",
"slug": "privacy-policy",
"status": "publish",
"template": "page-privacy-policy.php"
}'
Set Page Template
docker exec wordpress-local-wordpress-1 wp post meta update <POST_ID> _wp_page_template "page-privacy-policy.php" --allow-root
Configure SEO (Yoast)
Requirements: Theme must have Yoast meta fields registered (see functions.php snippet below)
# Set focus keyphrase
docker exec wordpress-local-wordpress-1 wp post meta update <POST_ID> _yoast_wpseo_focuskw "privacy policy miami real estate" --allow-root
# Set meta description (155 chars max, include focus keyword)
docker exec wordpress-local-wordpress-1 wp post meta update <POST_ID> _yoast_wpseo_metadesc "Learn how CSR Real Estate protects your privacy and handles personal information on our Miami real estate development website." --allow-root
# Set SEO title
docker exec wordpress-local-wordpress-1 wp post meta update <POST_ID> _yoast_wpseo_title "Privacy Policy | CSR Real Estate" --allow-root
Upload Media
From URL:
docker exec wordpress-local-wordpress-1 wp media import "https://images.pexels.com/photos/123456/image.jpg" --title="Privacy Header" --allow-root
Set Featured Image:
docker exec wordpress-local-wordpress-1 wp post meta update <POST_ID> _thumbnail_id <MEDIA_ID> --allow-root
List Pages/Posts
docker exec wordpress-local-wordpress-1 wp post list --post_type=page --allow-root
docker exec wordpress-local-wordpress-1 wp post list --post_type=post --allow-root
docker exec wordpress-local-wordpress-1 wp post list --post_type=property --allow-root
Check/Install Plugins
# List installed plugins
docker exec wordpress-local-wordpress-1 wp plugin list --allow-root
# Install and activate a plugin
docker exec wordpress-local-wordpress-1 wp plugin install wordpress-seo --activate --allow-root
SEO Best Practices
Focus Keyphrase
- 2-4 words that describe the page content
- Should appear in title, meta description, and content
- Use naturally, don't keyword stuff
Meta Description
- 150-155 characters max
- Include focus keyphrase
- Compelling call to action
- Unique for each page
Page Title (SEO Title)
- 50-60 characters max
- Focus keyphrase near the beginning
- Brand name at the end (e.g., "Title | CSR Real Estate")
Featured Image
- Every page/post should have one
- Optimized file size (< 200KB)
- Descriptive alt text with keyphrase
Required Theme Modification
Add to theme's functions.php to enable Yoast fields via REST API:
// Enable Yoast SEO fields in REST API
function enable_yoast_rest_api() {
$post_types = ['post', 'page', 'property'];
foreach ($post_types as $type) {
register_post_meta($type, '_yoast_wpseo_focuskw', [
'show_in_rest' => true,
'single' => true,
'type' => 'string'
]);
register_post_meta($type, '_yoast_wpseo_metadesc', [
'show_in_rest' => true,
'single' => true,
'type' => 'string'
]);
register_post_meta($type, '_yoast_wpseo_title', [
'show_in_rest' => true,
'single' => true,
'type' => 'string'
]);
}
}
add_action('init', 'enable_yoast_rest_api');
Stock Photo Integration
Pexels API
- API Key: Store in
/root/.pexels-api-key - Search:
curl -H "Authorization: API_KEY" "https://api.pexels.com/v1/search?query=TERM&per_page=5" - Download: Use the
src.largeorsrc.originalURL from response
Unsplash API
- API Key: Store in
/root/.unsplash-api-key - Search:
curl "https://api.unsplash.com/search/photos?query=TERM&client_id=API_KEY"
Scripts
wp-page.py
Creates a WordPress page with optional SEO and featured image.
Usage:
python3 /root/.claude/skills/wordpress-admin/scripts/wp-page.py \
--site local \
--title "Privacy Policy" \
--slug "privacy-policy" \
--template "page-privacy-policy.php" \
--focus-kw "privacy policy" \
--meta-desc "Description here"
wp-seo.py
Sets Yoast SEO fields for existing posts/pages.
Usage:
python3 /root/.claude/skills/wordpress-admin/scripts/wp-seo.py \
--site local \
--post-id 123 \
--focus-kw "keyword" \
--meta-desc "Description" \
--seo-title "SEO Title"
wp-media.py
Downloads stock photo and uploads to WordPress.
Usage:
python3 /root/.claude/skills/wordpress-admin/scripts/wp-media.py \
--site local \
--search "miami skyline" \
--set-featured 123
Docker Management
Start Local WordPress
cd /root/csrdevelopment.com/wordpress-local && docker-compose up -d
Stop Local WordPress
cd /root/csrdevelopment.com/wordpress-local && docker-compose down
View Logs
docker logs wordpress-local-wordpress-1 -f
Reset Database
cd /root/csrdevelopment.com/wordpress-local && docker-compose down -v && docker-compose up -d
FTP Sync (Production)
Sync Theme Files
/root/csrdevelopment.com/sync-to-remote.sh
Upload Single File
lftp -u "alfonso@csrdevelopment.com",'@#s;v1#%1M$+' ftp.csrdevelopment.com << 'EOF'
set ssl:verify-certificate no
cd /public_html/wp-content/themes/csr-theme
put /root/csrdevelopment.com/csrdevelopment.com/public_html/wp-content/themes/csr-theme/FILE.php
bye
EOF
Common Tasks
Create Privacy Policy Page
- Create page with slug
privacy-policy - Set template to
page-privacy-policy.php - Set focus keyphrase: "CSR privacy policy"
- Set meta description (~155 chars with keyphrase)
- Upload relevant featured image
Create Terms of Service Page
- Create page with slug
terms - Set template to
page-terms.php - Set focus keyphrase: "CSR terms of service"
- Set meta description (~155 chars with keyphrase)
- Upload relevant featured image
Reference
- WordPress REST API: https://developer.wordpress.org/rest-api/
- WP-CLI Commands: https://developer.wordpress.org/cli/commands/
- Yoast SEO API: https://developer.yoast.com/customization/apis/
- Pexels API: https://www.pexels.com/api/documentation/
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
perigon-backend
Perigon ASP.NET Core + EF Core + Aspire conventions
perigon-agent
Pointers for Copilot/agents to apply Perigon conventions
perigon-angular
Angular 21+ standalone/Material/signal conventions for Perigon WebApp
fastapi-mastery
Comprehensive FastAPI development skill covering REST API creation, routing, request/response handling, validation, authentication, database integration, middleware, and deployment. Use when working with FastAPI projects, building APIs, implementing CRUD operations, setting up authentication/authorization, integrating databases (SQL/NoSQL), adding middleware, handling WebSockets, or deploying FastAPI applications. Triggered by requests involving .py files with FastAPI code, API endpoint creation, Pydantic models, or FastAPI-specific features.
context7-efficient
Token-efficient library documentation fetcher using Context7 MCP with 86.8% token savings through intelligent shell pipeline filtering. Fetches code examples, API references, and best practices for JavaScript, Python, Go, Rust, and other libraries. Use when users ask about library documentation, need code examples, want API usage patterns, are learning a new framework, need syntax reference, or troubleshooting with library-specific information. Triggers include questions like "Show me React hooks", "How do I use Prisma", "What's the Next.js routing syntax", or any request for library/framework documentation.
browser-use
Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction.
Didn't find tool you were looking for?