Files
WFK_theme/functions.php

152 lines
4.5 KiB
PHP

<?php
/**
* Functions and definitions
*/
if ( ! function_exists( 'wisdom1_setup' ) ) :
function wisdom1_setup() {
add_theme_support( 'automatic-feed-links' );
add_theme_support( 'title-tag' );
add_theme_support( 'post-thumbnails' );
register_nav_menus(
array(
'menu-1' => 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() {
wp_enqueue_style( 'wisdom1-style', get_stylesheet_uri(), array(), '1.1.0' );
}
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_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 '<ul id="primary-menu" class="menu">';
echo '<li><a href="' . esc_url( home_url( '/' ) ) . '">Home</a></li>';
echo '<li><a href="' . esc_url( home_url( '/articles/' ) ) . '">Articles</a></li>';
echo '<li><a href="' . esc_url( home_url( '/series/' ) ) . '">Series</a></li>';
echo '<li><a href="' . esc_url( home_url( '/about/' ) ) . '">About</a></li>';
echo '</ul>';
}