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.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "wordpress-admin" with this command: npx skills add crazyswami/wordpress-dev-skills/crazyswami-wordpress-dev-skills-wordpress-admin

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)

Local WordPress (Docker)

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.large or src.original URL 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

  1. Create page with slug privacy-policy
  2. Set template to page-privacy-policy.php
  3. Set focus keyphrase: "CSR privacy policy"
  4. Set meta description (~155 chars with keyphrase)
  5. Upload relevant featured image

Create Terms of Service Page

  1. Create page with slug terms
  2. Set template to page-terms.php
  3. Set focus keyphrase: "CSR terms of service"
  4. Set meta description (~155 chars with keyphrase)
  5. Upload relevant featured image

Reference

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

wp-performance

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

wp-orchestrator

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

wordpress-dev

No summary provided by upstream source.

Repository SourceNeeds Review