Plugin: dezeen-competitions
Overview
| Property | Value |
|---|---|
| Plugin Name | Dezeen Competition Manager |
| Version | 1.6 |
| Author | EDX |
| Location | _project/_web/wp-content/plugins/dezeen-competitions/ |
| Purpose | Custom post type for competitions with taxonomy, templates, submission forms, and admin controls |
Architecture
dezeen-competitions/
├── dezeen-competitions.php
└── src/
├── includes/
│ ├── class-competition-post-type.php # CPT registration
│ ├── class-competition-taxonomy.php # Taxonomy registration
│ ├── class-competition-admin.php # Admin settings
│ ├── class-competition-shortcode.php # Shortcode
│ ├── class-competition-rest-api.php # REST endpoint
│ ├── class-competition-query.php # Query modifications
│ ├── class-competition-rewrites.php # URL rewrites
│ ├── class-competition-templates.php # Template overrides
│ ├── class-competition-frontend.php # Frontend rendering
│ ├── class-cli-commands.php # WP-CLI commands
│ ├── class-competition-widgets.php # Widget areas
│ └── class-competition-custom-table.php # Custom DB table
└── templates/
├── archive-competition.php
├── single-competition.php
├── taxonomy-competition-category.php
├── taxonomy-competition-stage.php
├── competition-publishing-options.php
├── competition-details.php
├── competition-form.php
└── competition-hero-metabox.phpCustom Post Type
| Post Type | Slug | REST API |
|---|---|---|
| Competition | competition | Yes |
Custom Taxonomies
| Taxonomy | Slug | Description |
|---|---|---|
| Competition Type | competition-type | Type of competition |
| Competition Stage | competition-stage | Competition lifecycle stage |
| Internal Flags | internal_flags | Internal metadata flags |
REST API Endpoints
| Method | Endpoint | Purpose |
|---|---|---|
| POST | competition/v1/submit | Competition entry submission |
Shortcodes
| Shortcode | Purpose |
|---|---|
[competition_form] | Competition entry form |
WP-CLI Commands
| Command | Purpose |
|---|---|
wp convert-competition-hero-image | Convert hero images |
wp duplicate-hero-image | Duplicate hero images |
wp update-competitions | Bulk update competitions |
wp fix-competition-category-counts | Fix taxonomy counts |
Custom Database Table
Table: {prefix}_competition_visibility
Created on plugin activation. Stores competition visibility/publishing state.
Admin Pages
- Settings → Competition Settings — Competition configuration
Key Hooks
| Hook | Type | Purpose |
|---|---|---|
init | Action | Register CPT and taxonomies |
rest_api_init | Action | Register REST routes |
save_post | Action | Meta updates, visibility sync |
pre_get_posts | Filter | Include competitions in homepage/feed |
rewrite_rules_array | Filter | Custom taxonomy URL rewrites |
Theme Integration
single-competition.php— Single competition templatearchive-competition.php— Competition archivetaxonomy-competition-stage.php— Stage archivetaxonomy-competition-type.php— Type archivepage-competitions.php— Competitions landing pagecompetitions-v3.js— Vue 3 competition forms