Topics Manager
WordPress Plugin CPT+Taxonomy+Metabox+Shortcode
by Mahbub Hussain · github.com/devmahbubhussain/topics-manager · website
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/devmahbubhussain/topics-manager/archive/refs/heads/main.zipReadme
Topics Manager Plugin
A SOLID, factory-based WordPress plugin for managing custom post types, taxonomies, and meta boxes with full REST API support.
Features
Architecture
✅ SOLID Principles - Each class has a single responsibility
✅ Factory Pattern - Easy creation of new CPTs, taxonomies, and meta boxes
✅ Extensible Design - Add new fields or functionality without modifying core classes
✅ MVC Pattern - Clean separation of concerns for frontend components
✅ Singleton Pattern - Efficient plugin initialization and resource management
Supported Field Types
| Field Type | Features |
|---|---|
| Text | Basic text input |
| Number | Min/max validation |
| Date | Date picker |
| Select | Dropdown selection |
| Checkbox | Single toggle |
| Checkbox Group | Multiple select checkboxes |
| Radio | Exclusive option selection |
| Image Upload | Media library integration |
| WYSIWYG Editor | TinyMCE rich text editing |
| Multiple Images | Bulk upload with drag & drop reordering |
Security Features
- Automatic input sanitization
- Required field validation
- Min/max value enforcement
- Nonce verification for all form submissions
- Role-based capability management
✅ Frontend Features
- Book Listing – Display books anywhere using shortcode
- Single Book Page – Detailed view with meta and taxonomies
- Book Archive – Automatically generates archive pages for books
- Pagination – Supports paginated listings
✅ Shortcode
Display books anywhere in your posts or pages:
[books_listing]
Installation
- Upload the plugin to
/wp-content/plugins/ - Activate through WordPress admin
- Configure post types in
/config/post-types.php
Configuration
Example CPT configuration:
return [
[
'name' => 'book',
'args' => [
'label' => 'Books',
'show_in_rest' => true,
// ... additional args
],
'meta_boxes' => [
[
'id' => 'book_details',
'fields' => [
['id' => 'price', 'type' => 'number', 'min' => 0],
['id' => 'cover', 'type' => 'image']
]
]
]
]
];
## Requirements
=============
WordPress 6.1+
PHP 8.0+
Composer (for development)