szepeviktor/sentencepress

OOP toolkit for daily tasks in WordPress development.

v0.2.0 2023-06-17 04:59 UTC

This package is auto-updated.

Last update: 2024-04-19 23:10:33 UTC


README

Build Status Packagist PHPStan

These tools are recommended for use in agency-type projects where you have full control over the development and installation environment.

Installation

composer require szepeviktor/sentencepress

See WordPress website lifecycle for working with WordPress.

Examples

// Instead of wp_enqueue_script('main-js', get_template_directory_uri() . '/assets/js/main.js', [], '8.44', true)
$mainJs = new Script(get_template_directory_uri() . '/assets/js/main.js');
$mainJs
    ->setHandle('main-js')
    ->setVer('8.44')
    ->moveToFooter()
    ->enqueue();
// Instead of add_action('plugins_loaded', [$this, 'init'], 0, 20);
class Plugin
{
    use SzepeViktor\SentencePress\HookAnnotation;
    public function __construct()
    {
        $this->hookMethods();
    }

    /**
     * @hook plugins_loaded 20
     */
    public function init(): void
    {
        doSomething();
    }
}
// Instead of require __DIR__ . '/inc/template-functions.php';
// template-functions.php will be loaded and pingbackHeader called when wp_head hook is fired
class Template
{
    use SzepeViktor\SentencePress\HookProxy;
    public function __construct()
    {
        $this->lazyHookFunction(
            'wp_head',
            __NAMESPACE__ . '\\TemplateFunction\\pingbackHeader',
            10,
            0,
            __DIR__ . '/inc/template-functions.php'
        );
    }
}