For the complete documentation index, see llms.txt. This page is also available as Markdown.

Main Plugin Instance

Your plugin should have exactly one class that implements the PluginInterface interface. If you have a very simple plugin, it can be the only class you have, but you need to have it. For convenience, the PluginTrait trait provides a basic implementation for most methods.

Basically what this interface enforces is a way to retrieve the most useful information from the plugin's header comment. The AbstractPlugin class even goes a step further and actually retrieves all the values from said comment during the local initialization action.

Therefore it would be enough to have a file Plugin.php that looks a bit like this:

<?php

namespace DeepWebSolutions\Plugins\MyTestPlugin;

use DeepWebSolutions\Framework\Foundations\Plugin\AbstractPlugin;

\defined( 'ABSPATH' ) || exit;

class MyPlugin extends AbstractPlugin {
    public function get_plugin_file_path(): string {
        return $path_to_file_with_plugin_header_comment;
    }
}

$plugin = new MyPlugin();
$plugin->initialize();

echo $plugin->get_plugin_version(); // echoes whatever the version header line is set to

As always, our example plugin provides a more complex example (albeit it relies on the extended classes provided by the Core Module).

Last updated