tag in the document head, and expect WordPress to * provide it for us. */ add_theme_support('title-tag'); /* * Enable support for Post Thumbnails on posts and pages. * * @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/ */ add_theme_support('post-thumbnails'); // This theme uses wp_nav_menu() in one location. register_nav_menus( array( 'primary' => esc_html__('Primary', 'blueboxed'), 'footer' => esc_html__('Footer', 'blueboxed'), ) ); /* * Switch default core markup for search form, comment form, and comments * to output valid HTML5. */ add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption', 'style', 'script', ) ); // Set up the WordPress core custom background feature. add_theme_support( 'custom-background', apply_filters( 'blueboxed_custom_background_args', array( 'default-color' => 'ffffff', 'default-image' => '', ) ) ); // Add theme support for selective refresh for widgets. add_theme_support('customize-selective-refresh-widgets'); // Enabling theme support for align full and align wide option for the block editor add_theme_support('align-wide'); add_theme_support('wp-block-styles'); add_theme_support('responsive-embeds'); add_theme_support('editor-styles'); add_editor_style('assets/css/editor-style.css'); /** * Add support for core custom logo. * * @link https://codex.wordpress.org/Theme_Logo */ add_theme_support( 'custom-logo', array( 'height' => 250, 'width' => 250, 'flex-width' => true, 'flex-height' => true, ) ); add_theme_support( 'starter-content', array( 'widgets' => array( 'sidebar-1' => array( 'search', 'recent-posts', 'categories', 'archives', ), 'footer-1' => array( 'text_about' => array( 'text', array( 'title' => esc_html__( 'About', 'blueboxed' ), 'text' => esc_html__( 'A clean, glassy blog layout made for clear reading and fast navigation.', 'blueboxed' ), ), ), ), 'footer-3' => array( 'text_contact' => array( 'text', array( 'title' => esc_html__( 'Contact', 'blueboxed' ), 'text' => esc_html__( 'Email: hello@example.com', 'blueboxed' ), ), ), ), ), 'posts' => array( 'home', 'about' => array( 'post_type' => 'page', 'post_title' => esc_html__( 'About', 'blueboxed' ), 'post_content' => esc_html__( 'Use this page to introduce your story, mission, or latest updates.', 'blueboxed' ), ), 'contact' => array( 'post_type' => 'page', 'post_title' => esc_html__( 'Contact', 'blueboxed' ), 'post_content' => esc_html__( 'Share your email, social links, or a contact form.', 'blueboxed' ), ), ), 'options' => array( 'show_on_front' => 'posts', ), 'nav_menus' => array( 'primary' => array( 'name' => esc_html__( 'Primary Menu', 'blueboxed' ), 'items' => array( 'link_home', 'page_about', 'page_contact', ), ), 'footer' => array( 'name' => esc_html__( 'Footer Menu', 'blueboxed' ), 'items' => array( 'link_home', 'page_about', 'page_contact', ), ), ), ) ); } add_action('after_setup_theme', 'blueboxed_setup'); /** * Set the content width in pixels, based on the theme's design and stylesheet. * * Priority 0 to make it available to lower priority callbacks. * * @global int $content_width */ function blueboxed_content_width() { $GLOBALS['content_width'] = apply_filters('blueboxed_content_width', 640); } add_action('after_setup_theme', 'blueboxed_content_width', 0); /** * Register widget area. * * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar */ function blueboxed_widgets_init() { register_sidebar( array( 'name' => esc_html__('Sidebar', 'blueboxed'), 'id' => 'sidebar-1', 'description' => esc_html__('Add widgets here.', 'blueboxed'), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => esc_html__('Footer 1', 'blueboxed'), 'id' => 'footer-1', 'description' => esc_html__('Add widgets here.', 'blueboxed'), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => esc_html__('Footer 2', 'blueboxed'), 'id' => 'footer-2', 'description' => esc_html__('Add widgets here.', 'blueboxed'), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => esc_html__('Footer 3', 'blueboxed'), 'id' => 'footer-3', 'description' => esc_html__('Add widgets here.', 'blueboxed'), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); } add_action('widgets_init', 'blueboxed_widgets_init'); /** * Enqueue scripts and styles. */ function blueboxed_scripts() { /** * Theme Styles */ wp_enqueue_style('blueboxed-style', get_stylesheet_uri(), array(), _blueboxed_VERSION); wp_style_add_data('blueboxed-style', 'rtl', 'replace'); wp_enqueue_style('blueboxed-theme-bt-style', get_template_directory_uri() . '/assets/css/bootstrap.min.css', array(), _blueboxed_VERSION); wp_enqueue_style('blueboxed-theme-style', get_template_directory_uri() . '/assets/css/theme-style.css', array(), _blueboxed_VERSION); wp_enqueue_style('blueboxed-theme-responsive', get_template_directory_uri() . '/assets/css/responsive.css', array(), _blueboxed_VERSION); /** * Theme Scripts */ wp_enqueue_script('blueboxed-bt', get_template_directory_uri() . '/assets/js/bootstrap.min.js', array('jquery'), _blueboxed_VERSION, true); wp_enqueue_script('blueboxed-popper', get_template_directory_uri() . '/assets/js/popper.min.js', array('jquery'), _blueboxed_VERSION, true); wp_enqueue_script('blueboxed-custom', get_template_directory_uri() . '/assets/js/custom-scripts.js', array('jquery'), _blueboxed_VERSION, true); if (is_singular() && comments_open() && get_option('thread_comments')) { wp_enqueue_script('comment-reply'); } } add_action('wp_enqueue_scripts', 'blueboxed_scripts'); /** * Register block styles and patterns. */ function blueboxed_register_block_styles() { if ( function_exists( 'register_block_style' ) ) { register_block_style( 'core/quote', array( 'name' => 'blueboxed-soft', 'label' => esc_html__( 'Soft Blue', 'blueboxed' ), 'inline_style' => '.wp-block-quote.is-style-blueboxed-soft{background:rgba(47,109,191,0.12);border-left:4px solid #2f6dbf;padding:20px 24px;border-radius:12px;}', ) ); } } add_action( 'init', 'blueboxed_register_block_styles' ); function blueboxed_register_block_patterns() { if ( ! function_exists( 'register_block_pattern' ) ) { return; } if ( function_exists( 'register_block_pattern_category' ) && class_exists( 'WP_Block_Pattern_Categories_Registry' ) ) { $registry = WP_Block_Pattern_Categories_Registry::get_instance(); if ( ! $registry->is_registered( 'blueboxed' ) ) { register_block_pattern_category( 'blueboxed', array( 'label' => esc_html__( 'BlueBoxed', 'blueboxed' ) ) ); } } register_block_pattern( 'blueboxed/feature-callout', array( 'title' => esc_html__( 'Feature Callout', 'blueboxed' ), 'description' => esc_html__( 'A bold callout section with a heading, text, and button.', 'blueboxed' ), 'categories' => array( 'blueboxed' ), 'content' => '

' . esc_html__( 'Launch your next update with clarity', 'blueboxed' ) . '

' . esc_html__( 'Use this space to highlight what matters most and guide readers to the next action.', 'blueboxed' ) . '

', ) ); } add_action( 'init', 'blueboxed_register_block_patterns' ); /** * Implement the Custom Header feature. */ require get_template_directory() . '/inc/custom-header.php'; /** * Custom template tags for this theme. */ require get_template_directory() . '/inc/template-tags.php'; /** * Functions which enhance the theme by hooking into WordPress. */ require get_template_directory() . '/inc/template-functions.php'; /** * Load Jetpack compatibility file. */ if (defined('JETPACK__VERSION')) { require get_template_directory() . '/inc/jetpack.php'; }