WebDevStudio's fork of Automattic's _s. Used as our starter theme.
Branch: master
Clone or download
jomurgel and coreymcollins Feature/#438 update grid (#447)
* removes neat from style.scss and gulpfile.js

* adds media query mixin

* removes space

* imports media query plugin

* combines necessary grid variables and breakpoint variables into one partial

* removes rows partial

* updates media query usages to match new convention

* removes grid helpers

* remove instances of `col-` classes

* removes container wrappers and appends class and id to body

* removes wrapping primary container class

* adds container width grid var

* removes homepage partial in favor of template-sidebar-right view

* changes gutter var to 20

* Cleans up layout structure to utilize flexbox and easy-to-use full/container width elemenets

* moves sidebar elements to template partial

* updates margin output to utilize mixin

* replaces marign with margin mixin

* replaces padding with padding mixin

* rebuilds header with flexbox and removes span elements from neat

* replaces testing.test with wds.test

* adds wrapper for flexbox with sidebar

* adds container class to articles

* adds container class to sidebar

* update body class/id and adds grid-container class to header to init flexbox

* adds grid wrapper to single post temlate

* builds

* removes grid-x class (invalidated)

* adds filter to move yoast below all elements

* adds helper class and removes global acf margins

* adds margins to site-main class

* wraps sidebar right template

* wraps single post (sidebar)

* updates header wrap

* file cleanup

* changes grid-wrapper to display-flex helper

* updates button padding to place nice with inputs

* cleanup

* removes button style restrictions from header button action

* adds spacer variable

* adds padding to has-background elements

* Replaces any instance of rem(24) with $space variable

* adds block width field to other options

* adds vscode to gitignore

* adds container width to container options

* adds margin auto and width to site-main

* update container width output

* updates 'cell' cllass with 'container' class

* makes sure container is auto left/right margin

* removes unused classes

* adds space between accordion elements

* updates cta block to follow new conventions

* sets to full width and cleans up markup

* updates headings for cta

* adds helpers for jutify center and align center

* moves content width to display options tab

* removes undnerlines from buttons

* ads font weight

* adjusts carouel for new grid

* adds empty and missing general content partial

* renames _template-sidebar-right to _has-sidebar.scss

* removes margin

* removes padding

* sets postion for background figure

* Updates block naming conventions

* adds display options for width

* updates selector

* builds js

* brings button styles up to date with links

* avoid link conflicts with links with button class

* adds helpers for third and half grid elements

* adds mixin partial for grid elements

* empties partials

* updates markup to utilize new grid

* builds

* resolves phpcs issues

* adds filter to run content through — replace force balance tags

* adds missing return statement in docblock

* styles search from

* removes margin from hentry elements

* hides pagination of no pages exist

* builds

* adds missing return doc

* adds new sidebar left template

* updates documentation and adds helper class

* adds classname depending on template in use

* removes has-sidebar template and reverts to empty homepage template

* adds tempalte sidebar left template to hooks for has-sidebar class

* adds helper classes for sidebar elements

* adds mixins for sidebar elements

* builds

* removes margin from last paragraph

* adds documentation for grid classes

* adds quarter mixin

* fixes ul list

* fixes blockquote margin

* styles blockquote defaults

* adds defaults for typography

* builds

* adds color classes to style backgrounds

* wraps heading to allow for full-width elements

* adds max-width and margin auto left/right on menu area

* styles top of list instead of bottom

* adds padding to footer

* builds

* updates scaffolding styles/elements to follow new conventions

* builds

* adds default styles for radio/checkbox and select dropdown

* updates docs

* resolves alignment issues in main navigation

* resolves close icon inconsistancies

* builds

* adds fixes for ie11

* builds

* adds container width display options to carousel

* removes full-width mixin

* adds full-width mixin for helper

* updates media query

* builds

* sets search form container input min-width to 0

* builds

* removes omega reset

* uses color variables in form elements for radio/checkbox

* determins that yoast is active before running metabox_prio filter

* replaces normalize with sanitize

* removes bourbon as a dependency

* removes bourbon from gulp

* replaces " with ' in gulpfile

* adds directional property mixin

* adds margin mixin

* adds padding mixin

* adds position mixin

* adds size mixin

* adds unpack shorthand mixin

* adds new mixins

* removes clearings partial

* adds mixin utilities into subfilder

* updates clearfix

* replaces triangle mixin with markup

* removes font smoothing and legibility — set by default

* removes wordbreak mixin and inlines requirement — used once

* removes z-index mixin — not used

* removes vertical alignment mixin

* remove margin-auto mixin and inlines — used once

* removes hyphens mixin — unsued

* removes margin-padding reset and inlines

* cleanup mixins and utilities

* dds is size, is length and contains falsy function validators

* resolves issues with size mixin

* removes clearings styles

* updates comment odd background color

* removes clearfix

* removes instances of clearfix or floats

* adds flexbox to comments

* adds sidebar class to single posts template

* cleans up post navigation

* adds empty style containers for pagination container

* builds

* resolve link block issues in social nav

* adds container to post navigation

* fixes styles issues with header action button/form container

* builds

* removes unused description

* resolves html validation errors

* adds missing role="main" to <main> tag

* escape apostrophe on 404 page

* removes role="main" from <main> tag.

* removes clearfix and primary class tweak

* adds .hn class to headings loop

* removes empty style partials

* adds container-width qualifier for has-background padding

* escapes apostrophe in content-none partial

* rebuilds all

* removes empty selectors

* removes space

* removes empty ruleset

* adds example documentation to px to rem and px to em

* adds aria label to pgination container

* adds default not-animated class to animation class function

* run accordion content through _s_get_the_content function

* removes empty class and indents correctly

* adds container to 404 content

* adds $container-offset breakpoint to accomodate breakpoint above container width for padding

* reduce container offset

* adds missing container classes

* updates mobile nav colors

* adds container class wrapper

* decreases padding on replies which helps mobile

* forces default color on buttons during hover/focus

* builds

* resolves phpcs error

* replaces `@extend` with duplicate styles

* builds

* adds id to carousel slides inside the `_s_display_block_options` function

* adds -image to card image alt tag to avoid duplicate link text error

* adds title field to video background

* adds conditional logic to video background title

* adds background video alt tag

* updates header nav

* removes padding from contaienr with background on mobile devices

* builds

* Moves the enqueue of Slick scripts to avoid loading CSS in the footer incorrectly

* Adjusts some indentations

* Adds a fallback for video background if no description is set to avoid an empty space

* Adjusts tags for video backgrounds

* Fixes an output issue with footer social links

* Rearranges accordion buttons to fix some a11y issues

* Fixes a spacing issue

* Adds a play/pause button so our background videos are more accessible

* Compiles

* Adjusts button screen reader text

* Adds a check to see if an image exists. Sometimes it may not!

* restructures main nav wp_nav_menu and adds aria label

* adds container class to nav wrapper

* cleans up styles

* adds container to nav menu ul

* resolves padding issues on desktop devices for main navigation

* removes unecessary acf-content-blocks class if password protected page is password protected

* cleanup

* builds

* Adds a hidden h1 post title to the ACF page template for screen readers

* resolves issues with searchform width on larger screens

* fixes calc issue with variable

* builds

* removes container class from <main> and moves to ternary in acf template

* Fixes an extra space in the ACF template

* Fixes a space issue in the carousel class

* Adjusts carousel markup and class names to pull in color and animation

* Moves colors and animations to Display Options instead of Other Options

* Removes references to Bourbon and Neat throughout various files

* Updates Yarn file
Latest commit 9dce9f0 Feb 8, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github create `.github` folder and place templates in it Sep 22, 2017
acf-json Feature/#438 update grid (#447) Feb 8, 2019
docs updates color variables to use `$color-type-element` or `$color-eleme… Oct 26, 2018
inc Feature/#438 update grid (#447) Feb 8, 2019
languages Feature/#438 update grid (#447) Feb 8, 2019
template-parts Feature/#438 update grid (#447) Feb 8, 2019
.editorconfig Don't enforce 4 tab size. (#340) Dec 5, 2017
.eslintrc.js Feature/#352 carousel block (#374) Sep 18, 2018
.gitignore Feature/#438 update grid (#447) Feb 8, 2019
.sass-lint.yml Feature/#438 update grid (#447) Feb 8, 2019
404.php Feature/#438 update grid (#447) Feb 8, 2019
Gulpfile.js Feature/#438 update grid (#447) Feb 8, 2019
README.md Feature/#438 update grid (#447) Feb 8, 2019
archive.php Feature/#438 update grid (#447) Feb 8, 2019
bower.json packages & dependencies bump Jun 8, 2018
buddypress.php Feature/#438 update grid (#447) Feb 8, 2019
comments.php Feature/#438 update grid (#447) Feb 8, 2019
composer.json Change WDS Coding Standards to a dev dependency, update composer.lock. ( Apr 9, 2018
composer.lock Feature/#352 carousel block (#374) Sep 18, 2018
footer.php Feature/#438 update grid (#447) Feb 8, 2019
header.php Feature/#438 update grid (#447) Feb 8, 2019
index.php Feature/#438 update grid (#447) Feb 8, 2019
package.json Feature/#438 update grid (#447) Feb 8, 2019
rtl.css use more bourbon mixins Mar 17, 2015
screenshot.png Merge screenshot.php from upstream _s Sep 20, 2015
search.php Feature/#438 update grid (#447) Feb 8, 2019
searchform.php Replaces the <button> with an <input> to submit search results form (#… Sep 26, 2018
sidebar.php Feature/#438 update grid (#447) Feb 8, 2019
single.php Feature/#438 update grid (#447) Feb 8, 2019
style.css Feature/#438 update grid (#447) Feb 8, 2019
style.min.css Feature/#438 update grid (#447) Feb 8, 2019
template-acf.php Feature/#438 update grid (#447) Feb 8, 2019
template-scaffolding.php Feature/#438 update grid (#447) Feb 8, 2019
template-sidebar-left.php Feature/#438 update grid (#447) Feb 8, 2019
yarn.lock Feature/#438 update grid (#447) Feb 8, 2019



Build Status

Hi. I'm a starter theme called wd_s, or wdunderscores. I'm a theme meant for hacking so don't use me as a Parent Theme. Instead, try turning me into the next, most awesome, WordPress theme out there. That's what I'm here for!

I feature some of the web's most proven technologies like: Gulp, LibSass, Babel, PostCSS, and BrowserSync. To help you write clean code (that meets WordPress standards), I'm also bundled with a Sass Lint, ESLint, and PHPCS linting rulesets. Did I mention that I'm also accessible? Yup. I pass both WCAG 2.0AA and Section 508 standards out of the box.

If that weren't enough, I also support synchronized JSON for Advanced Custom Fields and support both Selective Refresh and Live Preview in the Theme Customizer.

If you have the latest version of Advanced Custom Fields Pro, then you can take advantage of our ACF Content Blocks system. Content Blocks are great way to "visually manage blocks of content" throughout your website.

WebDevStudios. WordPress for big brands.

Getting Started


Because I'm bundled with Gulp, basic knowledge of the command line and the following dependencies are required: either Yarn or Node, Gulp CLI (npm install -g gulp-cli), and Bower (npm install -g bower).

Quick Start

If you want to keep it simple, head over to https://wdunderscores.com and generate your wd_s based theme from there. You just input the name of the theme you want to create, click the "Generate" button, and you get your ready-to-awesomize starter theme.


If you want to set me up manually:

  1. Download and extract the zip into your wp-content/themes directory and rename wd_s-master to fit your needs.

  2. Find & Replace

You'll need to change all instances of the names: _s.

  • Search for: '_s' and replace with: 'project-name' (inside single quotations) to capture the text domain
  • Search for: _s_ and replace with: project-name_ to capture all the function names
  • Search for: Text Domain: _s and replace with: Text Domain: project-name in style.css
  • Search for (and include the leading space):  _s and replace with:  Project Name (with a space before it) to capture DocBlocks
  • Search for: _s- and replace with: project-name- to capture prefixed handles
  • Search for _s.pot and replace with: project-name.pot to capture translation files
  • Search for _s.com and replace with: project-name.dev to match your local development URL
  • Edit the theme information in the header of style.scss to meet your needs


After you've installed and activated me. It's time to setup Gulp.

  1. From the command line, change directories to your new theme directory
cd /your-project/wordpress/wp-content/themes/your-theme
  1. Install theme dependencies (use either Yarn or NPM)


yarn install && bower install


npm install && bower install

Install and Gulp

Gulp Tasks

From the command line, type any of the following to perform an action:

gulp watch - Automatically handle changes to CSS, JS, SVGs, and image sprites. Also kicks off BrowserSync.

gulp icons - Minify, concatenate, and clean SVG icons.

gulp i18n - Scan the theme and create a POT file.

gulp sass:lint - Run Sass against WordPress code standards.

gulp js:lint - Run Javascript against WordPress code standards.

gulp scripts - Concatenate and minify javascript files.

gulp sprites - Generate an image sprite and the associated Sass (sprite.png).

gulp styles - Compile, prefix, combine media queries, and minify CSS files.

gulp - Runs the following tasks at the same time: i18n, icons, scripts, styles, sprites.

Contributing and Support

Your contributions and support tickets are welcome. Please see our guidelines before submitting a pull request.