Theme: 2016dezeen
Overview
| Property | Value |
|---|---|
| Theme Name | Dezeen 2016 |
| Author | Den Creative |
| Version | 2.0 |
| Status | Production (active) |
| Build | Laravel Mix (SCSS + JS, webpack) |
| Location | _project/_web/wp-content/themes/2016dezeen/ |
Architecture
The theme uses a modular function file pattern. functions.php is a thin loader that requires:
| File | Purpose |
|---|---|
functions/utilities.php | Helper functions |
functions/theme-setup.php | Theme support, widget areas, nav menus |
functions/assets.php | Script and style enqueue |
functions/actions-and-filters.php | Core WP hooks, ACF field group |
functions/shortcodes.php | Shortcode definitions |
functions/admin.php | Admin menu pages, options |
functions/algolia.php | Algolia search integration and optimisation |
functions/performance.php | CLS fixes, preloading, lazy loading, font optimisation |
functions/events.php | Event-specific template logic, AJAX handlers |
functions/social-seo.php | Social sharing and SEO meta |
functions/ajax.php | AJAX endpoint handlers |
Template Hierarchy
Standard Templates
| Template | Purpose |
|---|---|
index.php | Default/home template |
single.php | Single post (article) |
page.php | Generic page |
author.php | Author archive |
search.php | Search results |
404.php | Not found |
comments.php | Comment template |
carousel.php | Main carousel |
carousel-hotlist.php | Hotlist carousel |
Page Templates
| Template | Purpose |
|---|---|
page-advertise.php | Advertising page |
page-awards.php | Awards landing |
page-awards-public-vote.php | Awards public voting |
page-awards-winners.php | Awards winners display |
page-categories.php | Category listing |
page-china.php | China-specific page |
page-comments.php | Comments page |
page-competitions.php | Competitions listing |
page-courses.php | Courses directory |
page-events.php | Events guide |
page-preferences.php | User preferences |
page-signup.php | Awards signup |
page-signup-closed.php | Closed signup |
Single Templates (Custom Post Types)
| Template | Post Type |
|---|---|
single-award_entry.php | Award entry |
single-competition.php | Competition |
single-dezeen_event.php | Event |
single-juror.php | Juror |
single-longlist_entry.php | Longlist entry |
single-shortlist.php | Shortlist |
single-shortlist_entry.php | Shortlist entry |
single-winner.php | Winner |
Archive Templates
| Template | Post Type |
|---|---|
archive-2022juror.php | 2022 Jurors |
archive-competition.php | Competitions |
archive-dezeen_event.php | Events |
Taxonomy Templates
| Template | Taxonomy |
|---|---|
taxonomy-award_year.php | Award year |
taxonomy-awards_2022_jurors.php | 2022 jurors |
taxonomy-competition-stage.php | Competition stage |
taxonomy-competition-type.php | Competition type |
taxonomy-event_city_guide.php | Event city guide |
taxonomy-event_type.php | Event type |
taxonomy-location.php | Location |
Special Templates
| Template | Purpose |
|---|---|
search-events.php | Event search |
search-nav.php | Search navigation |
template-events.php | Events template |
Template Partials
The includes/ directory contains reusable template partials loaded via get_template_part(). The ad_spots/ directory contains ad placement templates for different ad positions (MPU, leaderboard, sky, etc.).
Shortcodes
| Shortcode | Purpose | File |
|---|---|---|
[competition] | Competition entry form | functions/shortcodes.php:100 |
[genderPayGapCalculator] | Gender pay gap calculator | functions/shortcodes.php:189 |
[campaignmonitor] | Newsletter signup form | functions/shortcodes.php:222 |
[newsletters] | Alias for campaignmonitor | functions/shortcodes.php:223 |
Admin Options
The theme registers a "Dezeen Options" admin menu page via functions/admin.php:
create_dezeen_options_page()— Adds top-level menu- Tag metabox removal from post editor (uses ACF instead)
ACF Field Groups
| Field Group | Location | Fields |
|---|---|---|
| Tags | Posts (post type) | tag — taxonomy multi-select |
Asset Enqueue
Styles (priority 5)
dezeen-global-style-min.css— Global stylesstyle-min.css— Main theme stylesdezeen-awards-min.css— Awards styles (conditional)lzy_srcset.min.css— Lazy loading styles
Scripts (priority 20)
scripts-min.js— Main bundlemodern_header-min.js— Header functionalitycount-min.js— Disqus comment count- Feature-specific scripts loaded conditionally
Performance Features
| Feature | Implementation |
|---|---|
| CLS optimisation | Inline styles in wp_head (priority 5) |
| Critical resource preloading | <link rel="preload"> in wp_head (priority 1) |
| Font display swap | font-display: swap injection (priority 2) |
| Lazy loading | Custom lazysize.js + lazysizes.min.js |
| Lite YouTube | Conditional lite-yt-embed.js for YouTube embeds |
| Ad container optimisation | Deferred ad rendering in wp_footer |
| CLS monitoring | Client-side CLS tracking script |
AMP Support
The amp/ directory contains AMP-specific template overrides:
single.php/page.php— AMP article templateshtml-start.php— AMP HTML headcarousel.php— AMP carouselfeatured-image.php— AMP featured imagemeta-*.php— AMP metadata components
AMP CSS is compiled from sass/style-amp.scss to css/style-amp.css.
SASS Architecture
Entry Points
| File | Output |
|---|---|
sass/style.scss | css/style-min.css |
sass/dezeen-global/dezeen-global-style.scss | css/dezeen-global-style-min.css |
sass/dezeen-awards.scss | css/dezeen-awards-min.css |
sass/style-amp.scss | css/style-amp.css |
sass/optinmonster.scss | css/optinmonster-min.css |
sass/lzy_srcset.scss | css/lzy_srcset.min.css |
Key Partials
_variables.scss— Colour palette, breakpoints, spacing_mixins.scss— Reusable mixins_globals.scss— Base element styles_header.scss— Header styles_critical.scss— Above-the-fold critical CSScomponents/*.scss— Component styles (nav, carousel, comments, ads, etc.)
JavaScript Architecture
Main Bundle
scripts-min.js combines: scripts.js, advert-sticky.js, miniliving.js, cookie-banner.js, optinmonster-dialogue.js, lazysize.js, carousel.js.
Feature Bundles
| Bundle | Purpose |
|---|---|
algolia-min.js | Algolia search |
competitions-v3-min.js | Competition forms (Vue 3) |
lightbox-min.js | Image lightbox |
newsletter-min.js | Newsletter forms |
eventsguide-min.js | Events guide |
hotlist-min.js | Hot list |
liftigniter-workhorse-min.js | Content recommendations |
single-page-scripts-min.js | Single post scripts |
Libraries
- jQuery 4.0.0 (via npm)
- Vue 3 (external, for competitions)
- Slick carousel
- Waypoints
- lazysizes
- lite-yt-embed (YouTube optimisation)
- Tipsy (tooltips)
Widget Areas
Registered in functions/theme-setup.php via dezeen_widgets_init(). Used for sidebar and footer widget positioning.
AJAX Handlers
Events-related AJAX handlers in functions/events.php and functions/ajax.php for:
- Event filtering
- Event search
- Calendar download (ICS format via
template_redirect)