first commit
This commit is contained in:
43
wp-content/themes/hello-elementor/includes/script.php
Normal file
43
wp-content/themes/hello-elementor/includes/script.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace HelloTheme\Includes;
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit; // Exit if accessed directly.
|
||||
}
|
||||
|
||||
class Script {
|
||||
|
||||
protected string $handle;
|
||||
protected array $dependencies;
|
||||
|
||||
public function __construct( string $handle, array $dependencies = [] ) {
|
||||
$this->handle = $handle;
|
||||
$this->dependencies = $dependencies;
|
||||
}
|
||||
|
||||
public function enqueue() {
|
||||
$asset_path = HELLO_THEME_SCRIPTS_PATH . $this->handle . '.asset.php';
|
||||
$asset_url = HELLO_THEME_SCRIPTS_URL;
|
||||
|
||||
if ( ! file_exists( $asset_path ) ) {
|
||||
throw new \Exception( $asset_path . ' - You need to run `npm run build` for the "hello-elementor" first.' );
|
||||
}
|
||||
|
||||
$script_asset = require $asset_path;
|
||||
|
||||
foreach ( $this->dependencies as $dependency ) {
|
||||
$script_asset['dependencies'][] = $dependency;
|
||||
}
|
||||
|
||||
wp_enqueue_script(
|
||||
$this->handle,
|
||||
$asset_url . "$this->handle.js",
|
||||
$script_asset['dependencies'],
|
||||
$script_asset['version'],
|
||||
true
|
||||
);
|
||||
|
||||
\wp_set_script_translations( $this->handle, 'hello-elementor' );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user