Mini Content API by Umair Arshad
A headless-ready WordPress backend architecture for micro content applications with custom post types, taxonomies, meta boxes, and optimized REST API endpoints.
by Umair Arshad · github.com/umairtipu/mini-content-plugin · website
★ 0stars
0forks
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/umairtipu/mini-content-plugin/archive/refs/heads/main.zipA headless-ready WordPress backend architecture for micro content applications. This plugin provides a custom post type "Articles" with topics taxonomy, custom meta fields, optimized REST API endpoints, and performance enhancements.
Requirements
- WordPress 5.0+
- PHP 7.4+
- REST API enabled
Installation
Standard Installation
- Upload the
mini-content-pluginfolder to/wp-content/plugins/ - Activate the plugin through the 'Plugins' menu in WordPress
- Go to Settings → Permalinks and click "Save Changes" to flush rewrite rules
File Structure
mini-content-plugin/
├── mini-content-plugin.php # Main plugin bootstrap
├── includes/
│ ├── cpt.php # Articles CPT registration
│ ├── taxonomy.php # Topics taxonomy registration
│ ├── meta-box.php # Article Settings meta box
│ ├── rest-api.php # REST API endpoints & caching
│ └── admin.php # Admin columns
└── readme.md # Documentation
Features Implemented
1. Custom Post Type (CPT)
- Name: Articles (slug:
hs_articles) - Supports: Title, Content Editor, Excerpt, Featured Images
- Location: WordPress admin menu
2. Custom Taxonomy
- Name: Topics (slug:
hs_topics) - Type: Hierarchical
- Assignment: Explicitly bound to
hs_articlesonly
3. Custom Meta Box ("Article Settings")
- Reading Time Field: Numeric input (minutes)
- Featured Status Toggle: Checkbox for priority flag
- Security: Nonce validation, capability checks, sanitization
4. REST API Endpoint
- URL:
GET /wp-json/mini/v1/articles - DTO Response: Clean structure with no raw database noise
5. Query Filters
?topic=tech- Filter by topic slug?featured=true- Show only featured articles?page=2&per_page=20- Pagination
6. Performance Optimizations
- Transient Caching: 1-hour cache with automatic invalidation
- WP_Query Optimization:
no_found_rows => trueeliminates SQL_CALC_FOUND_ROWS - Bulk Cache Deletion: Wildcard pattern for efficient invalidation
7. Security Protocols
- Nonce validation (
wp_verify_nonce) - Capability checks (
current_user_can) - Context-aware escaping (
esc_html,esc_url,absint)
8. Admin Improvements
- Custom columns for Reading Time and Featured Status
- Visual indicators for featured articles
API Usage Examples
Get all articles
curl https://yourdomain.com/wp-json/mini/v1/articles
Filter by topic
curl https://yourdomain.com/wp-json/mini/v1/articles?topic=technology
Get featured articles
curl https://yourdomain.com/wp-json/mini/v1/articles?featured=true
Combined filters with pagination
curl https://yourdomain.com/wp-json/mini/v1/articles?topic=tech&featured=true&page=1&per_page=10
Sample Response
{
"articles": [
{
"id": 101,
"title": "Optimizing Relational Post Storage",
"excerpt": "An in-depth analysis of high-throughput transactional database states...",
"reading_time": 6,
"featured_image": "https://cdn.example.com/uploads/sample.jpg",
"topics": ["Database Management", "Engineering"]
}
],
"total": 1,
"page": 1,
"per_page": 10
}