WordPress development starter hybrid theme by (and mostly for) Nicolas Gillium, freelance web developer based in Nancy since 2014.
Largely inspired by themes such as wd_s, _s and air-light.
🎯 The aim is to provide a simple but effective development base for managing frontend dependencies.
- JavaScript/Build:
@wordpress/scripts(Webpack-based build pipeline for WordPress themes/blocks) - Dev server:
BrowserSyncviabrowser-sync-webpack-plugin(live reload/proxy workflow) - Frontend assets:
Sass+stylelint(stylelint-config-standard-scss), SVG spritemap generation (svg-spritemap-webpack-plugin), image optimization (image-minimizer-webpack-plugin+sharp) - JavaScript linting/formatting: tooling provided by
@wordpress/scripts(ESLint + formatting commands) - WordPress/PHP quality:
PHP_CodeSnifferwithWordPress Coding Standards (WPCS)andPHPCompatibilityWP - WordPress CLI:
wp-cli/wp-cli-bundle(including POT generation viawp i18n make-pot) - ACF development support:
php-stubs/acf-pro-stubsfor static analysis/autocomplete
All *.php files inside these directories are auto-loaded by functions.php.
inc/functions/: Reusable helper functions used across templates and hooks.inc/hooks/: WordPress actions/filters integrations (core, admin, navigation, plugins, dev-only behavior).inc/setup/: Theme bootstrap (theme supports, menus, assets enqueue, preload, ACF options pages).inc/gutenberg/: Block editor integration (registering block assets, styles, patterns, and restrictions).inc/template-tags/: Presentation-oriented template helpers for front-end rendering.inc/post-types/: Place custom post type registrations here.inc/taxonomies/: Place custom taxonomy registrations here.inc/shortcodes/: Place shortcode definitions here.
Note: inc/post-types/, inc/taxonomies/, and inc/shortcodes/ are scaffold directories and may be empty in a fresh install.
- Node.js
>= 18.12.0 - npm
>= 8.19.2 - Composer
>= 2.9
npm installcomposer installClone this repository, rename the theme folder, then run a case-sensitive find/replace across the codebase (same approach as _s).
Use these placeholders:
your-theme-slug(kebab-case, example:acme-studio)your_theme_slug(snake_case, example:acme_studio)YourVendor(PHP vendor/namespace root, example:Acme)
Recommended replacement steps:
- Search for
'wp_eclipse'and replace with'your_theme_slug'(text domain in PHP strings). - Search for
wp_eclipse_and replace withyour_theme_slug_(prefixed PHP functions, if any). - Search for
wp_eclipse-and replace withyour_theme_slug-(script/style handles, if any). - Search for
NicoGill\\wp_eclipseand replace withYourVendor\\your_theme_slug(PHP namespace). - Search for
NicoGill\\eclipse\\and replace withYourVendor\\your_theme_slug\\(constant namespace infunctions.php). - Search for
wp-eclipseand replace withyour-theme-slug(npm package name, block namespace default, repository URL). - Search for
nicogill/eclipseand replace withyourvendor/your-theme-slug(Composer package name). - Search for
eclipse.testand replace with your local domain (example:acme-studio.test) in development-only files (webpack.config.js,inc/hooks/dev-only.php). - Search for
Text Domain: wp_eclipseinstyle.cssand replace withText Domain: your_theme_slug(or your final text domain convention).
Then update:
style.csstheme header fields (Theme Name, URI, Author, Text Domain, Tags).- Translation filename (for example
build/languages/wp_eclipse.potto your own slug). - Project metadata in
package.jsonandcomposer.json. - This README.
| Command | Action |
|---|---|
npm run start |
Builds assets and starts Live Reload and Browsersync servers |
npm run build |
Builds production-ready assets for a deployment |
npm run create:block |
Runs an interactive prompt to scaffold a dynamic Gutenberg block (with render.php) in /blocks |
npm run create:block:acf |
Runs an interactive prompt to scaffold an ACF-compatible block in /blocks |
npm run lint:js |
Runs JavaScript linting |
npm run lint:js:fix |
Runs JavaScript linting with auto-fix |
npm run lint:css |
Runs SCSS linting |
npm run lint:css:fix |
Runs SCSS linting with auto-fix |
npm run lint:style |
Runs stylelint on /assets and /blocks |
npm run lint:style:fix |
Runs stylelint with auto-fix on /assets and /blocks |
composer run format |
Runs PHP Code Beautifier and Fixer (phpcbf) |
composer run lint |
Runs PHP_CodeSniffer checks (phpcs) |
composer run report |
Runs a full PHP_CodeSniffer report |
composer run pot |
Generates/updates the POT file for translations |
- Source of truth is
/blocks/*and/assets/*. - Compiled files are written to
/buildvia@wordpress/scripts. - Blocks are auto-registered from
/build/blockson WordPressinit. - ACF Pro blocks are supported via
block.json(acf.renderTemplate). - Block scaffolding template is stored in
/inc/block-template.