Re-built with an MVC theme from scratch, using Timber

  • A WordPress website for a sports podcast
  • Custom post types with shared taxonomies and bidirectional fields
  • MVC-based theme using WP Timber
  • Extensive use of ACF (Advanced Custom Fields)
  • Javascript and AJAX from scratch
  • Custom responsive theme
  • Custom PHP and Javascript


Going beyond basic blog posts, the content model was structured around major subject matter (episodes, people, books) joined together by common fields and taxonomies. The result is a potentially deep nexus of inter-linked content, valued by search engines and end-users alike.

Custom Post Types, ACF, Bidirectional Fields

To facilitate the model within WordPress, custom post types were created and custom forms built using ACF (Advanced Content Fields) extensively, including support for bidirectional fields.

Bidirectional fields are form elements connected between specific posts (of different content types), so that edits in one post are automatically reflected in another. This saves on editing labour but more importantly it also automatically builds up highly-relevant specific linkages between pieces of content, bringing more value than (vague) simple tagging.

Shared Taxonomies

Some term taxonomies are shared across post types, and this was not an easy decision. Shared taxonomies offer the benefit of a single universal tag list to manage, however it requires extra care and management in other aspects like rendering tag totals, lists and links.

One hard fact was apparent early on: having a “Sport” taxonomy was going to be a huge list (in theory, listing every sport in the world) and it made no sense to duplicate and separately manage such a list multiple times (ie for each content type). A shared taxonomy made more sense.

In hindsight, separate independent taxonomies could have been mirrored and managed but would require a lot more custom code. Overall this is it’s a case of choosing your pain; there’s no free lunch!

Custom Theme

A theme was creating from-scratch using an MVC system based on WP Timber. Timber makes use of the Twig template language, popular in the PHP world.

Before this version 2.0, the original project was created entirely using the Elementor page builder, which although allowed for quick exploration and build-up, ultimately delivered less polish and snappyness than desired, combined with having to subscribe to a paid 3rd-party service.

Working with Timber is really pleasant! more to come.