load_files(); $this->init_hooks(); do_action( 'brandy_initialized' ); } private function load_files() { /** * Define constants */ require_once get_template_directory() . '/inc/Constants/ConstantsLoader.php'; /** * Load Core files */ require_once get_template_directory() . '/inc/Functions/FunctionsLoader.php'; require_once get_template_directory() . '/inc/Builder/BuilderLoader.php'; require_once get_template_directory() . '/inc/WooCommerce/WooCommerceLoader.php'; require_once get_template_directory() . '/inc/Core/ThemeSetup.php'; require_once get_template_directory() . '/inc/Database/Migration.php'; require_once get_template_directory() . '/inc/Integrations/IntegrationSetup.php'; require_once get_template_directory() . '/inc/Gutenberg/GutenbergSetup.php'; require_once get_template_directory() . '/inc/Niches/NicheLoader.php'; } private function init_hooks() { add_action( 'init', array( $this, 'load_classes' ) ); add_action( 'template_redirect', array( $this, 'prevent_unallowed_posts' ) ); } public function load_classes() { I18n::load_plugin_text_domain(); /** * Core modules */ ThemeEnqueue::get_instance(); CustomizerLoader::get_instance(); DynamicCss::get_instance(); Ajax::get_instance(); /** * Others modules */ WishlistInitialize::get_instance(); /** * Admin */ AdminSetup::get_instance(); /** * Initialize shortcode */ ShortcodesLoader::get_instance(); } public function prevent_unallowed_posts() { global $wp_query; $unallowed_post_statuses = apply_filters( 'brandy_unallowed_post_statuses', self::UNALLOWED_POST_STATUSES ); if ( ( is_single() || is_page() ) && ( in_array( $wp_query->post->post_status, $unallowed_post_statuses, true ) ) ) { $wp_query->set_404(); status_header( 404 ); } } }