Files
wp-plugin-starter-template-…/.wiki/Customization-Guide.md

5.0 KiB

Customization Guide

This guide provides detailed instructions on how to customize the plugin starter template for your specific needs.

Basic Customization

Renaming the Plugin

  1. Main Plugin File: Rename wp-plugin-starter-template.php to match your plugin name (e.g., my-awesome-plugin.php)

  2. Update Plugin Header: Edit the plugin header in your main plugin file:

    /**
     * Plugin Name: My Awesome Plugin
     * Plugin URI: https://www.example.com
     * Description: A brief description of your plugin
     * Version: 0.1.0
     * Author: Your Name
     * Author URI: https://www.example.com
     * License: GPL-2.0+
     * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
     * Text Domain: my-awesome-plugin
     * Domain Path: /languages
     */
    
  3. Update Text Domain: Change the text domain throughout the codebase from wp-plugin-starter-template to your plugin's text domain

Updating Namespaces

  1. Change Namespace: Update all namespace references from WPALLSTARS\PluginStarterTemplate to your own namespace (e.g., MyCompany\MyAwesomePlugin)

  2. Update Autoloading: Modify the composer.json file to reflect your new namespace:

    "autoload": {
        "psr-4": {
            "MyCompany\\MyAwesomePlugin\\": "includes/"
        }
    }
    
  3. Run Composer: After updating the namespace, run composer dump-autoload to update the autoloader

Customizing Documentation

  1. README.md: Update the README.md file with your plugin's information
  2. readme.txt: Update the readme.txt file for WordPress.org compatibility
  3. CHANGELOG.md: Start a fresh changelog for your plugin
  4. Wiki Documentation: Customize the wiki documentation to match your plugin

Advanced Customization

Adding Custom Functionality

  1. Core Functionality: Modify the includes/core.php file to implement your core functionality

  2. Admin Interface: Customize the admin/lib/admin.php file to create your admin interface

  3. Frontend Features: Add frontend functionality as needed

Customizing Assets

  1. CSS: Modify or add stylesheets in the assets/css/ directory
  2. JavaScript: Customize JavaScript files in the assets/js/ directory
  3. Images: Add your own images to the assets/images/ directory

Adding Custom Post Types

If your plugin needs custom post types, add them to the Core class:

public function register_post_types() {
    register_post_type('my_custom_post', [
        'labels' => [
            'name' => __('Custom Posts', 'my-awesome-plugin'),
            'singular_name' => __('Custom Post', 'my-awesome-plugin'),
        ],
        'public' => true,
        'has_archive' => true,
        'supports' => ['title', 'editor', 'thumbnail'],
        'menu_icon' => 'dashicons-admin-post',
    ]);
}

Adding Custom Taxonomies

For custom taxonomies, add them to the Core class:

public function register_taxonomies() {
    register_taxonomy('custom_category', 'my_custom_post', [
        'labels' => [
            'name' => __('Custom Categories', 'my-awesome-plugin'),
            'singular_name' => __('Custom Category', 'my-awesome-plugin'),
        ],
        'hierarchical' => true,
        'show_admin_column' => true,
    ]);
}

Adding Settings Pages

To add a settings page, customize the Admin class:

public function add_menu_pages() {
    add_menu_page(
        __('My Plugin Settings', 'my-awesome-plugin'),
        __('My Plugin', 'my-awesome-plugin'),
        'manage_options',
        'my-awesome-plugin',
        [$this, 'render_settings_page'],
        'dashicons-admin-generic',
        100
    );
}

public function render_settings_page() {
    include plugin_dir_path(__FILE__) . '../templates/settings-page.php';
}

Customizing Update Mechanism

The template includes functionality for updates from different sources. Customize the update source options in the main plugin file:

/**
 * GitHub Plugin URI: username/repository
 * GitHub Branch: main
 * Primary Branch: main
 * Release Branch: main
 * Release Asset: true
 * Requires at least: 5.0
 * Requires PHP: 7.0
 * Update URI: https://example.com/plugin-updates
 */

Testing Your Customizations

After making your customizations, it's important to test your plugin:

  1. Unit Tests: Update and run the unit tests to ensure your core functionality works correctly
  2. End-to-End Tests: Update and run the end-to-end tests to test the plugin as a whole
  3. Manual Testing: Test your plugin in different WordPress environments

Building Your Plugin

Once you've customized the plugin to your needs, build it for distribution:

./build.sh {VERSION}

This will create a ZIP file that you can install in WordPress or distribute to users.

Conclusion

By following this customization guide, you can transform the plugin starter template into a fully functional plugin that meets your specific needs. Remember to maintain the same level of code quality and documentation as you customize the template.