skycel / custom-theme-tree
WordPress plugin that provides a structured and organized theme development environment with customizable directory structures.
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/skycel/custom-theme-tree
Requires
- php: >= 8.0
Requires (Dev)
- larapack/dd: ^1.1
Suggests
- larapack/dd: Required to use the dd method.
README
A WordPress plugin that provides a structured and organized theme development environment with customizable directory structures.
Overview
This plugin helps WordPress theme developers by implementing a standardized and customizable directory structure. It automatically creates and manages theme directories, handles templates, and provides a clean organization for your theme files.
Features
- 🗂️ Organized directory structure for templates and assets
- 🔧 Customizable configuration
- 🚀 Automatic creation of required WordPress theme files
- 📁 Support for template subdirectories (archives, pages, components, etc.)
- 🎨 Dedicated assets organization
- 📌 Optional .gitkeep file management
Directory Structure
By default, the plugin creates the following structure:
theme-root/
├── assets/
│ ├── js
│ ├── css
│ └── img
├── config/
│ └── theme.php
├── templates/
│ ├── archives
│ ├── attachments
│ ├── authors
│ ├── categories
│ ├── components
│ ├── dates
│ ├── pages
│ ├── singles
│ ├── tags
│ └── taxonomies
├── footer.php
├── functions.php
├── header.php
├── index.php
└── style.css
Installation
There are three ways to install this plugin:
1. Standard Plugin Installation
- Clone this repository into your WordPress plugins directory:
cd wp-content/plugins/ git clone <repository-url> custom-theme-tree
- Activate the plugin through the WordPress admin interface
2. Must-Use Plugin Installation
- Create the
mu-pluginsdirectory if it doesn't exist:
mkdir -p wp-content/mu-plugins
- Copy or clone the plugin into the mu-plugins directory:
cd wp-content/mu-plugins/ git clone <repository-url> custom-theme-tree
- Create a loader file named
custom-theme-tree.phpin the mu-plugins root:
<?php /** * Load Custom Theme Tree Must-Use Plugin */ require_once __DIR__ . '/custom-theme-tree/CustomThemeTree.php';
The plugin will be automatically activated as a Must-Use plugin.
3. Theme Integration
- Create a
pluginsorincludesdirectory in your theme:
mkdir -p wp-content/themes/your-theme/includes
- Copy or clone the plugin into your theme directory:
cd wp-content/themes/your-theme/includes git clone <repository-url> custom-theme-tree
- Add the following code to your theme's
functions.php:
<?php // Load Custom Theme Tree require_once get_template_directory() . '/includes/custom-theme-tree/CustomThemeTree.php'; // Initialize the Custom Theme Tree new CustomThemeTree();
Choose the installation method that best suits your needs:
- Standard plugin: For regular themes and easy activation/deactivation
- Must-Use plugin: For required functionality across all sites in your installation
- Theme integration: For theme-specific implementation and distribution
Configuration
Create or modify the theme.php file in your theme's config directory:
<?php const USE_GITKEEP = true; const USE_CUSTOMTREE_PLUGIN = true; const CUSTOMTREE = array();
Configuration Options
USE_GITKEEP: Enable/disable .gitkeep files in empty directoriesUSE_CUSTOMTREE_PLUGIN: Enable/disable the plugin functionalityCUSTOMTREE: Array for custom directory structure configuration
Usage
The plugin works automatically after activation. It will:
- Create the necessary directory structure
- Set up required WordPress theme files
- Initialize template loaders for different content types
- Handle component loading (header, footer, sidebar, etc.)
Custom Directory Structure
You can customize the directory structure by modifying the CUSTOMTREE constant in your theme.php:
const CUSTOMTREE = array( "templates" => "custom-templates", "stylesheets" => "custom-assets", "templates_subdirs" => [ "custom-section" => "custom-section" ] );
Requirements
- WordPress 5.0 or higher
- PHP 8.0 or higher
License
This project is licensed under the MIT License.