piotrpress/wordpress-theme

This library is WordPress theme singleton base class with methods to get data from theme's header fields.

v1.0.0 2025-06-12 16:23 UTC

This package is auto-updated.

Last update: 2025-06-12 16:25:34 UTC


README

This library is WordPress theme singleton base class with methods to get data from theme's header fields.

Installation

composer require piotrpress/wordpress-theme

Usage

/**
 * Theme Name:        Example Theme
 * Theme URI:         https://example.com/theme/
 * Description:       Example Theme description.
 * Tags:              block-patterns, full-site-editing
 * Version:           1.0.0
 * Tested up to:      6.8
 * Requires at least: 6.0
 * Requires PHP:      7.4
 * Author:            John Smith
 * Author URI:        https://example.com/theme/author/
 * License:           GPL v3 or later
 * License URI:       https://www.gnu.org/licenses/gpl-3.0.txt
 * Update URI:        https://example.com/theme/update/
 * Text Domain:       example-theme
 * Domain Path:       /languages
 */

require __DIR__ . '/vendor/autoload.php';

class Example extends \PiotrPress\WordPress\Theme {}

echo Example::getName();

Methods

Basic static methods handling theme's default header fields

  • getName() - returns string with the name of the theme from Theme Name header field
  • getThemeURI() - returns string with the home page of the theme or empty string if Theme URI header field is not set
  • getDescription() - returns string with a short description of the theme or empty string if Description header field is not set
  • getTags() - returns string with the tags of the theme or empty string if Tags header field is not set
  • getVersion() - returns string with the current version number of the theme or empty string if Version header field is not set
  • getRequiresWP() - returns string with the lowest WordPress version that the theme will work on or empty string if Requires at least header field is not set
  • getRequiresPHP() - returns string with the minimum required PHP version or empty string if Requires PHP header field is not set
  • getAuthor() - returns string with the name of the theme's author or empty string if Author header field is not set
  • getAuthorURI() - returns string with the website of the theme's author or empty string if Author URI header field is not set
  • getUpdateURI() - returns string with third-party theme's update server or empty string if Update URI header field is not set
  • getTextDomain() - returns string with the gettext text domain of the theme or empty string if Text Domain header field is not set
  • getDomainPath() - returns string with the path to translations directory or empty string if Domain Path header field is not set

Additional static methods

  • getDir() - returns string with the path to theme's directory
  • getUrl() - returns string with the url to theme's directory
  • getSlug() - returns string with the sanitized name of the theme
  • getPrefix() - returns string with the prefix for theme's hooks

Inherited Singleton's static methods

  • getInstance() - returns the instance of the Theme class

Handling custom theme's header fields

  1. Add WordPress support for extra theme's header fields using extra_theme_headers filter:
add_filter( 'extra_theme_headers', function () {
    return [ 'License', 'License URI' ];
} );
  1. Add methods to handle extra theme's header fields:
class Example extends \PiotrPress\WordPress\Theme {
    public static function getLicenseURI() {
        return self::get( 'License URI' );
    }
}

NOTE: get prefixed methods are automagically created for theme's header fields that meet valid function name rules. e.g. getLicense() method.

Requirements

PHP >= 7.4 version.

License

GPL 3.0