Awesome
SentencePress
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'
);
}
}