esc_html__('Primary', 'wisdom1'), ) ); add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption', 'style', 'script', ) ); } endif; add_action('after_setup_theme', 'wisdom1_setup'); /** * Enqueue scripts and styles. */ function wisdom1_scripts() { // Enqueue Bootstrap CSS wp_enqueue_style('bootstrap-style', 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css', array(), '5.3.3'); // Enqueue Theme CSS (depends on Bootstrap so it loads after) wp_enqueue_style('wisdom1-style', get_stylesheet_uri(), array('bootstrap-style'), '1.1.0'); // Enqueue Bootstrap JS Bundle (includes Popper) wp_enqueue_script('bootstrap-script', 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js', array(), '5.3.3', true); } add_action('wp_enqueue_scripts', 'wisdom1_scripts'); /** * Calculate estimated reading time. */ function wisdom1_reading_time() { $content = get_post_field('post_content', get_the_ID()); $word_count = str_word_count(strip_tags($content)); $reading_time = ceil($word_count / 200); // Average 200 words per minute return $reading_time . ' min read'; } /** * Customizer additions. */ function wisdom1_customize_register($wp_customize) { // Add Hero Section $wp_customize->add_section('wisdom1_hero_section', array( 'title' => __('Hero Section', 'wisdom1'), 'priority' => 30, )); // Headline Setting $wp_customize->add_setting('hero_headline', array( 'default' => 'Ancient Wisdom for a Modern World.', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('hero_headline', array( 'label' => __('Hero Headline', 'wisdom1'), 'section' => 'wisdom1_hero_section', 'type' => 'text', )); // Subheadline Setting $wp_customize->add_setting('hero_subheadline', array( 'default' => 'A collection of biblical insights curated for the thoughtful leader.', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('hero_subheadline', array( 'label' => __('Hero Subheadline', 'wisdom1'), 'section' => 'wisdom1_hero_section', 'type' => 'textarea', )); // CTA Text Setting $wp_customize->add_setting('hero_cta_text', array( 'default' => 'Start Reading', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('hero_cta_text', array( 'label' => __('CTA Button Text', 'wisdom1'), 'section' => 'wisdom1_hero_section', 'type' => 'text', )); // Hero Background Image Setting $wp_customize->add_setting('hero_background_image', array( 'default' => get_template_directory_uri() . '/assets/images/hero-default.png', 'sanitize_callback' => 'esc_url_raw', )); $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'hero_background_image', array( 'label' => __('Hero Background Image', 'wisdom1'), 'section' => 'wisdom1_hero_section', 'settings' => 'hero_background_image', ))); // Add Author Section (Front Page) $wp_customize->add_section('wisdom1_author_section', array( 'title' => __('Author Section (Front Page)', 'wisdom1'), 'priority' => 32, )); // Enable Author Section $wp_customize->add_setting('show_author_section', array( 'default' => false, 'sanitize_callback' => 'rest_sanitize_boolean', )); $wp_customize->add_control('show_author_section', array( 'label' => __('Show Author Section', 'wisdom1'), 'section' => 'wisdom1_author_section', 'type' => 'checkbox', )); // Author Name $wp_customize->add_setting('author_name', array( 'default' => 'Adolfo Reyna', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('author_name', array( 'label' => __('Author Name', 'wisdom1'), 'section' => 'wisdom1_author_section', 'type' => 'text', )); // Author Bio $wp_customize->add_setting('author_bio', array( 'default' => 'Exploring the intersection of faith, leadership, and modern life. Join me on a journey to uncover timeless wisdom.', 'sanitize_callback' => 'wp_kses_post', )); $wp_customize->add_control('author_bio', array( 'label' => __('Author Bio', 'wisdom1'), 'section' => 'wisdom1_author_section', 'type' => 'textarea', )); // Author Image $wp_customize->add_setting('author_image_url', array( 'default' => '', 'sanitize_callback' => 'esc_url_raw', )); $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'author_image_url', array( 'label' => __('Author Image', 'wisdom1'), 'section' => 'wisdom1_author_section', ))); // Add Newsletter Section $wp_customize->add_section('wisdom1_newsletter_section', array( 'title' => __('Newsletter Section', 'wisdom1'), 'priority' => 35, )); // Newsletter Headline $wp_customize->add_setting('newsletter_headline', array( 'default' => 'Receive weekly insights directly in your inbox.', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('newsletter_headline', array( 'label' => __('Headline', 'wisdom1'), 'section' => 'wisdom1_newsletter_section', 'type' => 'text', )); // Newsletter Subheadline $wp_customize->add_setting('newsletter_subheadline', array( 'default' => 'Join our community and get our latest thoughts sent straight to you.', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('newsletter_subheadline', array( 'label' => __('Subheadline', 'wisdom1'), 'section' => 'wisdom1_newsletter_section', 'type' => 'textarea', )); // Newsletter Button Text $wp_customize->add_setting('newsletter_button_text', array( 'default' => 'Subscribe', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control('newsletter_button_text', array( 'label' => __('Button Text', 'wisdom1'), 'section' => 'wisdom1_newsletter_section', 'type' => 'text', )); } add_action('customize_register', 'wisdom1_customize_register'); /** * Register Series Taxonomy */ function wisdom1_register_taxonomies() { $labels = array( 'name' => _x('Series', 'taxonomy general name', 'wisdom1'), 'singular_name' => _x('Series', 'taxonomy singular name', 'wisdom1'), 'search_items' => __('Search Series', 'wisdom1'), 'all_items' => __('All Series', 'wisdom1'), 'parent_item' => __('Parent Series', 'wisdom1'), 'parent_item_colon' => __('Parent Series:', 'wisdom1'), 'edit_item' => __('Edit Series', 'wisdom1'), 'update_item' => __('Update Series', 'wisdom1'), 'add_new_item' => __('Add New Series', 'wisdom1'), 'new_item_name' => __('New Series Name', 'wisdom1'), 'menu_name' => __('Series', 'wisdom1'), ); $args = array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array('slug' => 'series'), 'show_in_rest' => true, ); register_taxonomy('series', array('post'), $args); } add_action('init', 'wisdom1_register_taxonomies'); /** * Menu fallback */ function wisdom1_menu_fallback() { echo '
'; } /** * Filter the archive title to remove prefixes */ add_filter('get_the_archive_title', function ($title) { if (is_category()) { $title = single_cat_title('', false); } elseif (is_tag()) { $title = single_tag_title('', false); } elseif (is_author()) { $title = '' . get_the_author() . ''; } elseif (is_post_type_archive()) { $title = post_type_archive_title('', false); } elseif (is_tax()) { $title = single_term_title('', false); } return $title; });