Files
CWC/lib/class-enqueue.php
T
Keith Solomon ba36c40937
Sync TODOs with Issues / sync_todos (push) Successful in 6s
feature: Add Quincy font
Co-authored-by: Copilot <copilot@github.com>
2026-05-02 14:50:53 -05:00

116 lines
4.4 KiB
PHP

<?php
/**
* CWC Theme Enqueue Class
*
* @package CWC
* @since 1.0.0
*/
namespace CWC;
/**
* Class Enqueue
*
* Handles the enqueueing of scripts and styles in a WordPress theme or plugin.
*
* @package Basic-WP
* @since 1.0.0
*/
class Enqueue {
/**
* Initialize hooks to enqueue scripts and styles.
*/
public function __construct() {
add_action( 'wp_enqueue_scripts', array( $this, 'enqFEAssets' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'enqBEAssets' ) );
add_action( 'enqueue_block_editor_assets', array( $this, 'enqEditorAssets' ) );
}
/**
* Enqueue frontend CSS and JS files.
*/
public function enqFEAssets() {
$theme_dir = get_stylesheet_directory();
$theme_uri = get_stylesheet_directory_uri();
/**
* CSS
*/
$css_path = '/static/dist/theme.css';
if ( file_exists( $theme_dir . $css_path ) ) {
$version = filemtime( $theme_dir . $css_path );
wp_enqueue_style( 'cwc-theme', $theme_uri . $css_path, array(), $version );
}
$font_ver = gmdate( 'U' );
wp_enqueue_style( 'poppins', 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap', false, $font_ver );
wp_enqueue_style( 'quincy', 'https://use.typekit.net/dnt5chp.css', false, $font_ver );
/**
* JS
*/
$js_path = '/static/js/theme.js';
if ( file_exists( $theme_dir . $js_path ) ) {
$version = filemtime( $theme_dir . $js_path );
wp_enqueue_script( 'jquery' ); // Needed by downstream scripts; modules can't depend on classic scripts.
wp_enqueue_script_module( 'cwc-theme', $theme_uri . $js_path, array(), $version );
wp_enqueue_script_module( 'cwc-button', $theme_uri . '/static/js/components/button.js', array( 'cwc-theme' ), $version );
}
}
/**
* Enqueue backend (admin/editor) CSS and JS files.
*/
public function enqBEAssets() {
$theme_dir = get_stylesheet_directory();
$theme_uri = get_stylesheet_directory_uri();
$font_ver = gmdate( 'U' );
wp_enqueue_style( 'poppins', 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap', false, $font_ver );
wp_enqueue_style( 'quincy', 'https://use.typekit.net/dnt5chp.css', false, $font_ver );
/**
* Admin CSS
*/
$admin_css_path = '/styles/backend/admin.css';
if ( file_exists( $theme_dir . $admin_css_path ) ) {
$version = filemtime( $theme_dir . $admin_css_path );
wp_enqueue_style( 'cwc-admin', $theme_uri . $admin_css_path, array(), $version );
}
/**
* Admin JS
*/
$admin_js_path = '/static/js/admin.js';
if ( file_exists( $theme_dir . $admin_js_path ) ) {
$version = filemtime( $theme_dir . $admin_js_path );
wp_enqueue_script( 'jquery' ); // Needed by downstream scripts; modules can't depend on classic scripts.
wp_enqueue_script_module( 'cwc-admin', $theme_uri . $admin_js_path, array(), $version );
wp_enqueue_script_module( 'cwc-button', $theme_uri . '/static/js/components/button.js', array( 'cwc-admin' ), $version );
}
}
/**
* Enqueue block editor CSS (scoped to editor to avoid leaking into wp-admin UI).
*/
public function enqEditorAssets() {
$theme_dir = get_stylesheet_directory();
$theme_uri = get_stylesheet_directory_uri();
$editor_css_path = '/styles/backend/editor.css';
$font_ver = gmdate( 'U' );
wp_enqueue_style( 'poppins', 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap', false, $font_ver );
wp_enqueue_style( 'quincy', 'https://use.typekit.net/dnt5chp.css', false, $font_ver );
if ( file_exists( $theme_dir . $editor_css_path ) ) {
$version = filemtime( $theme_dir . $editor_css_path );
wp_enqueue_style( 'cwc-editor', $theme_uri . $editor_css_path, array(), $version );
}
}
}
// Initialize the Enqueue class.
$enqueue = new Enqueue();