https://github.com/piotrpress/wordpress-plugin
This library is WordPress plugin singleton base class with methods to get data from plugin's header fields.
https://github.com/piotrpress/wordpress-plugin
php plugin plugins wordpress wordpress-pl wordpress-plugin wordpress-plugin-boilerplate wordpress-plugin-development wordpress-plugin-framework wordpress-plugin-library wordpress-plugin-starter wordpress-plugin-template wordpress-plugins
Last synced: about 1 month ago
JSON representation
This library is WordPress plugin singleton base class with methods to get data from plugin's header fields.
- Host: GitHub
- URL: https://github.com/piotrpress/wordpress-plugin
- Owner: PiotrPress
- License: gpl-3.0
- Created: 2021-11-25T23:51:00.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-09-15T22:00:13.000Z (8 months ago)
- Last Synced: 2024-10-17T13:38:46.407Z (7 months ago)
- Topics: php, plugin, plugins, wordpress, wordpress-pl, wordpress-plugin, wordpress-plugin-boilerplate, wordpress-plugin-development, wordpress-plugin-framework, wordpress-plugin-library, wordpress-plugin-starter, wordpress-plugin-template, wordpress-plugins
- Language: PHP
- Homepage:
- Size: 15.6 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license.txt
Awesome Lists containing this project
README
# WordPress Plugin
This library is WordPress plugin singleton base class with methods to get data from [plugin's header fields](https://developer.wordpress.org/plugins/plugin-basics/header-requirements/).
## Installation
```console
composer require piotrpress/wordpress-plugin
```## Usage
```php
/**
* Plugin Name: Example Plugin
* Plugin URI: https://example.com/plugin/
* Description: Example Plugin description.
* Version: 1.0.0
* Requires at least: 6.2.2
* Requires PHP: 7.4
* Author: John Smith
* Author URI: https://example.com/plugin/author/
* License: GPL v3 or later
* License URI: https://www.gnu.org/licenses/gpl-3.0.txt
* Update URI: https://example.com/plugin/update/
* Text Domain: example-plugin
* Domain Path: /languages
*/require __DIR__ . '/vendor/autoload.php';
use PiotrPress\WordPress\Plugin;
class Example extends Plugin {
public function activation() : void {}
public function deactivation() : void {}
}Example::getInstance( __FILE__ );
echo Example::getName();
```**NOTE:** Plugin's translations are loaded automatically according to `Text Domain` and `Domain Path` plugin's header fields.
## Methods
### Basic static methods handling plugin's default header fields
* `getName()` - returns `string` with the name of the plugin from `Plugin Name` header field
* `getPluginURI()` - returns `string` with the home page of the plugin or empty `string` if `Plugin URI` header field is not set
* `getVersion()` - returns `string` with the current version number of the plugin or empty `string` if `Version` header field is not set
* `getDescription()` - returns `string` with a short description of the plugin or empty `string` if `Description` header field is not set
* `getAuthor()` - returns `string` with the name of the plugin author or empty `string` if `Author` header field is not set
* `getAuthorURI()` - returns `string` with the website of the plugin's author or empty `string` if `Author URI` header field is not set
* `getTextDomain()` - returns `string` with the gettext text domain of the plugin or directory name of the plugin 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
* `getNetwork()` - returns `bool` whether the plugin can only be activated network-wide according to `Network` header field
* `getRequiresWP()` - returns `string` with the lowest WordPress version that the plugin 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
* `getUpdateURI()` - returns `string` with third-party plugin's update server or empty `string` if `Update URI` header field is not set
* `RequiresPlugins()` - returns `string` with the comma-separated list of WordPress.org-formatted slugs for its dependencies or empty `string` if `Requires Plugins` header field is not set### Additional static methods handling plugin's paths
* `getSlug()` - returns `string` with the sanitized name of the plugin
* `getPrefix()` - returns `string` with the prefix for plugin's hooks
* `getFile()` - returns `string` with the path to main plugin's file
* `getDir()` - returns `string` with the path to plugin's directory
* `getUrl()` - returns `string` with the url to plugin's directory
* `getBaseName()` - returns `string` with the basename of the plugin
* `getDirName()` - returns `string` with the directory name of the plugin### Inherited Singleton's static methods
* `getInstance()` - returns the instance of the Plugin class
### Abstract methods handling plugin's de/activation
* `activation()` - executed while plugin activation
* `deactivation()` - executed while plugin deactivation### Handling custom plugin's header fields
1. Add WordPress support for extra plugin's header fields using `extra_plugin_headers` filter:
```php
add_filter( 'extra_plugin_headers', function () {
return [ 'License', 'License URI' ];
} );
```2. Add methods to handle extra plugin's header fields:
```php
class Example extends Plugin {
public static function getLicenseURI() {
return self::get( 'License URI' );
}
}
```**NOTE:** `get` prefixed methods are automagically created for plugin's header fields that meet valid function name rules. e.g. `getLicense()` method.
## Requirements
PHP >= `7.4` version.
## License
[GPL 3.0](license.txt)