Image ©Dana Whittle
A brief history
I am a designer and a coder (among other pursuits) who has been building WordPress websites since the platform first became publicly available in 2003. Prior to its official release, I was already messing around with its predecessor, b2/cafelog. Since then, WordPress has evolved to run the majority of all publicly-reachable sites on the internet worldwide, testimony to how (relatively) easy it is to use and to customize. Despite the occasional security issues that pop up (as they do with all software), I’ve always found it to be a well-maintained, solid and versatile platform. Even though I’m also building Astro sites these days, I still haven’t found a better solution for most small clients that absolutely need a CMS to manage their content.
Over the years, I have focused on developing slimmed-down themes with secure, accessible code, and I always install as few – thoroughly vetted – plugins as possible, to keep things speedy and safe. I’ve built sites on all sorts of servers for a wide range of clients – no two sites are ever the same. And I (more than) strongly dislike and disapprove of site builder apps. There is just no substitute for creating a custom theme from scratch, without gluing together a bunch of bits and pieces that are unnecessary to your site’s functionality. I also don’t EVER want my clients to “design” anything – that’s my job, with a good stylesheet overseeing proper design standards!
I invite you to download any of the free tools developed by me and offered here. Please note that I am not explicitly providing support, which is why you won’t find my plugins and themes in the WordPress repository – I’ve already got kids to look after.
Enjoy!
Photo ©Xinyi Song
About this theme
Débutante is a simple, bilingual starter theme for developers working with clients requiring switchable (i.e. English-French) language content. It is intended for use when building a custom theme from scratch, and allows the developer to select the primary language. As always, it is open source (M.I.T. license), as are any included elements. Images used in the demo content are free to use.
Features
- “Single-page” home page design approach
- Featured images as backgrounds
- Primary and secondary language content, title, excerpt for each Post or Page (ACF)
- Language switcher – once switched, content is displayed in the selected language (with persistent option to switch in the nav bar)
- In-page queries via customizable shortcodes
- Built-in editor’s guide
- Custom 404 (not found) and maintenance page templates
- Responsive design and mobile menu
- Configured for locally hosted fonts
- Custom JS for numerous functions
- Accessible design
- OpenGraph tags
- Minimized WordPress admin area (see tech notes below)
Requirements
- Advanced Custom Fields (free or paid version) must be installed and activated on the site.
- The Vizou Bling plugin (for bilingual content) must be installed and activated on the site. This theme will not activate without it.
- Recommended – Vizou Quickloop plugin (for easy, customizable in-page Post queries via shortcodes).
- If you plan on using the demo site (see below) with sample content and all plugins, you’ll need the WPVivid plugin to migrate it to your own WordPress installation.
Functions
Your theme’s functions.php deals with the following – obviously, this can be customized to suite your preferences.
- Three menus – Nav EN, Nav FR, Social, with two depth levels allowed by default
- Locally hosted – Font Awesome and Google Fonts (not included – add to CSS folder); AOS animation (included), GLightbox (included)
- Local fonts, styles and scripts properly registered and enqueued; option to enqueue final/minimized theme CSS
- Removed all Gutenberg-related elements, customization, patterns, emojis, discussion and avatar options, widgets, comments, links, trackbacks, pingbacks
- Removed admin bar from frontend for all users
- Removal of WordPress version and XML-RPC
- Prevents WordPress from checking for theme updates
- JS included for toggle menu, language, scrolled state, tabbed child pages, editor’s guide, AOS animations and Glightbox
- Built-in Featured Image column for Pages and Posts (replaces a plugin)
Theme notes
- This theme makes use of parent and child (sub) pages to organize related content – the home page is a good example – the
page-tabbed.php template simply and efficiently manages this.
- While the WordPress admin area is minimized, if you have a second user role (most commonly “Editor”), you can use the free Members plugin to further fine-tune Editor permissions (like give them access to editing Appearance/Menus, which I usually do).
- Custom ACF fields for secondary language content are hidden from the admin area (to avoid Admin user accidents)
- The Vizou Bling plugin, along with this theme, would be relatively easy to fork/adapt for a different second language (i.e. English/Spanish).
- If you use WPVivid to install the sample site, you’ll get a bunch of handy plugins pre-installed (see screenshot below), including the Theme Check and Plugin Check plugins so you can inspect my custom plugins (which are NOT designed for release to the WordPress repository).
Structure
Here’s how it’s organized.
- Templates –
page.php, page-home.php, page-tabbed.php, page-guide.php, page-maintenance.php, single.php, category.php, vizou-quickloop-template.php (bilingual version)
- Default pages –
header.php, footer.php, search.php, index.php, 404.php, searchform.php, functions.php, style.css
- Parts – WordPress “template-parts”, including
analytics.php, nav-main.php, nav-social.php, nav-admin.php, nav-lang.php, background.php, contact.php, opengraph.php, pagination.php
- Functions – Called by main functions file,
admin-cleanup.php, enqueue-assets. php, plugin-related.php, theme-config.php
- JS –
scrolled.js, anchors.js, tabnav.js, aos.js
- CSS –
css folder setup for aos.css, fontawesome and googlefonts
- Images – placeholder images
bg.webp, logo.svg, logo.png
Screenshots
Downloads
Download the latest version of the theme only
Download a full sample site with demo content and restore it to your own fresh WordPress install using the WPVivid plugin
Download the custom ACF fields for this theme – Import Shared Content and Video URL field groups (JSON file)
Download free SVG language icons to add to your own Font Awesome custom icons