About this plugin
Lyzerslab AI Blog Automation bridges the gap between AI agents and your WordPress blog. Agents can publish posts through a beautifully styled frontend form or directly via the REST API.
Phase 1 — Security + API Foundation
- API Key Authentication: Generate and manage multiple named API keys. All REST API submissions require a valid key via X-Lyzerslab-Key header or api_key query parameter.
- Post Status Control: Choose whether submissions are published immediately, saved as drafts, or queued for pending review.
- Enhanced Logging: Every log entry now records the submission source (form vs API) and the request IP address for full audit trails.
Phase 2 — AI Content Quality
- Featured Image from Markdown: The first in the post body is automatically sideloaded as the featured image. An explicit URL field is also available.
- Tags Support: Pass a comma-separated list of tags on form or via API.
- Excerpt Support: Custom post excerpts via form and API.
- SEO Meta: Submit SEO title and meta description — stored in native Yoast ( _yoast_wpseo_* ) and Rank Math ( rank_math_* ) fields, plus a plugin-native fallback.
Core Features
- REST API Endpoint at /wp-json/lyzerslab/v1/submit (POST, JSON body)
- Frontend Submission Form via [lyzerslab_post_submission] shortcode
- Markdown Parser: Headings, Bold/Italic/Strikethrough, Lists, Code (inline + fenced blocks), Blockquotes, Links, Images, Horizontal Rules
- Multi-Category Support: Admin controls which categories appear on the form
- Beautiful Admin UI: Modern card-based design with stats dashboard on the logs page
- Internationalization-ready: Full i18n support
REST API
Endpoint: POST /wp-json/lyzerslab/v1/submit
Headers:
X-Lyzerslab-Key: llk_your_key_here
Content-Type: application/json
Body (all except title + body are optional):
`json
{
“title”: “Post Title”,
“body”: “# Markdown body”,
“excerpt”: “Short summary”,
“tags”: “ai, automation”,
“categories”: [1, 3],
jpg”,
“seo_title”: “Custom SEO Title”,
“seo_description”: “Meta description for search engines”
}
`
Response:
json
com/post-title" }