This repository has been archived on 2024-02-08. You can view files and clone it, but cannot push or open issues or pull requests.
cookthebooks-legacy/inc/core/Theme.php

69 lines
1.4 KiB
PHP

<?php // phpcs:ignore WordPress.Files.FileName.NotHyphenatedLowercase
/**
* Theme services.
*
* @package PressBook
*/
namespace PressBook;
/**
* Register and initialize theme services.
*/
class Theme {
/**
* Get theme services.
*/
public static function get_services() {
return apply_filters(
'pressbook_services',
array(
Setup::class,
Menu::class,
Widget::class,
Header::class,
Enhance::class,
Scripts::class,
IconsHelper::class,
Editor::class,
PageSettings::class,
WooCommerce::class,
Jetpack::class,
Options\SiteIdentity::class,
Options\Colors::class,
Options\Fonts::class,
Options\HeaderImage::class,
Options\TopNavbar::class,
Options\TopBanner::class,
Options\PrimaryNavbar::class,
Options\HeaderBlock::class,
Options\Content::class,
Options\Sidebar::class,
Options\Blog::class,
Options\General::class,
Options\FooterBlock::class,
Options\Footer::class,
Options\Upsell::class,
)
);
}
/**
* Initialize theme services.
*/
public static function init() {
foreach ( self::get_services() as $class ) {
self::register_service( new $class() );
}
}
/**
* Register a theme service.
*
* @param Serviceable $service Service instance.
*/
private static function register_service( Serviceable $service ) {
$service->register();
}
}