WordPress Custom Theme Tree

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

  1. Clone this repository into your WordPress plugins directory:
cd wp-content/plugins/
git clone <repository-url> custom-theme-tree
  1. Activate the plugin through the WordPress admin interface

2. Must-Use Plugin Installation

  1. Create the mu-plugins directory if it doesn't exist:
mkdir -p wp-content/mu-plugins
  1. Copy or clone the plugin into the mu-plugins directory:
cd wp-content/mu-plugins/
git clone <repository-url> custom-theme-tree
  1. Create a loader file named custom-theme-tree.php in 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

  1. Create a plugins or includes directory in your theme:
mkdir -p wp-content/themes/your-theme/includes
  1. Copy or clone the plugin into your theme directory:
cd wp-content/themes/your-theme/includes
git clone <repository-url> custom-theme-tree
  1. 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 directories
  • USE_CUSTOMTREE_PLUGIN: Enable/disable the plugin functionality
  • CUSTOMTREE: Array for custom directory structure configuration

Usage

The plugin works automatically after activation. It will:

  1. Create the necessary directory structure
  2. Set up required WordPress theme files
  3. Initialize template loaders for different content types
  4. 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.

Description
Plugin Wordpress permettant de générer une nouvelle structrure de fichiers pour les thèmes Wordpress. Le tout basé sur la template hierachie de Wordpress, un peu modifié
Readme 85 KiB
2025-02-25 19:27:37 +01:00
Languages
PHP 100%