WordPress Integration

Overview

WordPress is the most popular CMS in the world, and Publish Owl integrates seamlessly with it using the WordPress REST API. This guide covers everything you need to connect your WordPress site and start publishing AI-generated content.

Requirements

  • A self-hosted WordPress.org site (WordPress.com Business plan or higher also supports the REST API)
  • WordPress 5.6 or later (for Application Passwords support)
  • Admin or Editor access to create Application Passwords
  • HTTPS enabled on your site (required for security)
Note: Some security plugins (like Wordfence or iThemes Security) may block REST API access. You may need to whitelist Publish Owl's servers or adjust your security settings.

Step 1: Create an Application Password

WordPress Application Passwords let external apps authenticate without using your main password.

  1. Log in to your WordPress admin dashboard
  2. Go to Users → Profile (or Users → All Users and edit your user)
  3. Scroll down to the Application Passwords section
  4. Enter a name like "Publish Owl" in the "New Application Password Name" field
  5. Click Add New Application Password
  6. Copy the generated password immediately (it won't be shown again!)

Application Password Format

The password will look something like: ABcd EFgh IJkl MNop QRst UVwx

You can enter it with or without spaces - Publish Owl handles both formats.

Step 2: Add Your WordPress Site

  1. In Publish Owl, go to Sites
  2. Click + Add Site
  3. Enter a name for your site
  4. Select WordPress as the CMS type
  5. Fill in the WordPress fields:
    • Site URL: Your WordPress URL (e.g., https://example.com)
    • Username: Your WordPress username
    • Application Password: The password you generated in Step 1
  6. Click Save Site

Publish Owl will test the connection. If successful, your site is ready to use!

WordPress-Specific Features

When you create a workflow connected to a WordPress site, you get access to additional WordPress-specific options:

Categories

Enter a Category ID in the workflow settings to assign all published articles to a specific category. Find the ID by hovering over a category in Posts → Categories and looking at the URL.

For per-article category control, add a categories column to your CSV. Values can be comma-separated category names (e.g., Reviews, Guides), numeric IDs (e.g., 5, 12), or a mix of both. Categories specified by name that don't exist in WordPress are created automatically. Per-article categories override the workflow-level default.

Slug Override

Add a slug column to your CSV to set the URL slug for each article individually, overriding the workflow's slug format setting. Non-ASCII characters (e.g. Cyrillic, accented Latin characters) are preserved - the system only normalizes spaces to hyphens and lowercases the text.

Custom Fields (Expandable Section)

Click "Custom Fields (WordPress)" to reveal additional options:

  • Post Type: Publish to "posts", "pages", or custom post types
  • Excerpt: Template for the post excerpt (supports {{keyword}} and {{title}})
  • Tags: Add tags to posts (one per line, supports variables)
  • Custom Meta Fields: Set ACF fields, Yoast SEO meta, or any custom meta
  • Gutenberg Blocks: Enable this option to convert HTML output to WordPress Block Editor (Gutenberg) format. This produces native WordPress blocks instead of a Classic block, which improves compatibility with block-based themes and plugins.

SEO Plugin Support

When your workflow generates a meta description, Publish Owl automatically sets the appropriate meta fields for both Yoast SEO and RankMath:

  • _yoast_wpseo_metadesc - Meta description (Yoast)
  • rank_math_description - Meta description (RankMath)
  • rank_math_focus_keyword - Focus keyword (RankMath), set to the job's target keyword

Both plugins only read their own meta keys, so there is no conflict. You don't need to configure anything - the correct fields are set automatically regardless of which SEO plugin you use.

Using Custom Meta Fields

Custom meta fields let you set values for ACF (Advanced Custom Fields), Yoast SEO, Rank Math, or any other plugin that uses post meta.

Common Examples

# Yoast SEO meta description
Key: _yoast_wpseo_metadesc
Value: {{title}} - Learn everything you need to know.

# Rank Math SEO title
Key: rank_math_title
Value: {{keyword}} | Your Site Name

# Custom reading time field
Key: reading_time
Value: 5 min read
Tip: You can use {{keyword}}, {{title}}, and any custom CSV column variables in meta field values. These will be replaced with the actual values when the article is published.

Featured Images

Publish Owl automatically uploads featured images to your WordPress Media Library and sets them on the post. Configure image generation in your workflow settings:

  • AI Generation: Use GPT Image 1.5, Gemini, Flux, Stable Diffusion, Ideogram, xAI Grok, Replicate, or other AI models
  • Stock Photos: Automatically find relevant images from Pexels, Unsplash, or Pixabay
  • Image Templates: Create custom branded images with the visual editor

Scheduled Publishing

WordPress fully supports scheduled posts. When you use Publish Owl's scheduling features:

  • Articles are created with WordPress's "Scheduled" status
  • WordPress automatically publishes them at the scheduled time
  • You can see pending scheduled posts in your WordPress dashboard

Content Refresh

When you use Publish Owl's content refresh feature (manually or via scheduled refresh), both the title and content are updated on your WordPress site. This is particularly useful for:

  • Time-sensitive content: Articles like "Best Laptops - January 2026" can have their titles updated to reflect the current date
  • Evergreen updates: Keep statistics, prices, and recommendations current
  • SEO freshness: Updated content signals to search engines that your articles are maintained
Note: The article's URL (slug) is never changed during refresh to preserve your SEO rankings and avoid broken links. Only the title and content are updated.

Troubleshooting

"Application Passwords" section not visible

Application Passwords require HTTPS. Make sure your site uses SSL. Some security plugins also disable this feature - check your plugin settings.

"401 Unauthorized" error

Double-check your username and application password. Make sure you're using your WordPress username (not email) and the full application password.

"403 Forbidden" error

Your security plugin or server firewall may be blocking REST API requests. Try temporarily disabling security plugins to test, then whitelist the necessary endpoints.

"rest_no_route" or 404 error

The REST API might be disabled. Go to Settings → Permalinks and click "Save Changes" (even without changing anything) to flush rewrite rules.

Posts created but not visible

Check if posts are being created as drafts or in a different post type. Also verify the category exists if you specified a Category ID.

Was this helpful?