<?php
/**
 * NBLOG.NG Theme Functions
 * Version: 8.5 - Optimized for speed & caching
 */

// Theme setup
function nblog_theme_setup() {
    add_theme_support('post-thumbnails');
    add_theme_support('title-tag');
    add_theme_support('custom-logo');
    add_theme_support('html5', array('search-form', 'comment-form', 'comment-list', 'gallery', 'caption'));
    add_theme_support('responsive-embeds');
    
    register_nav_menus(array(
        'primary' => __('Primary Menu', 'nblog'),
        'footer'  => __('Footer Menu', 'nblog'),
    ));
    
    // Add image sizes
    add_image_size('nblog-card', 400, 300, true);
    add_image_size('nblog-slider', 1200, 500, true);
}
add_action('after_setup_theme', 'nblog_theme_setup');

// Load CSS with version for cache busting
function nblog_load_styles() {
    wp_enqueue_style('nblog-style', get_stylesheet_uri(), array(), '8.5');
}
add_action('wp_enqueue_scripts', 'nblog_load_styles');

// Set posts per page
function nblog_posts_per_page($query) {
    if (!is_admin() && $query->is_main_query() && (is_home() || is_front_page())) {
        $query->set('posts_per_page', 24);
    }
}
add_action('pre_get_posts', 'nblog_posts_per_page');

// Reading time function
function nblog_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);
    return ($reading_time < 1 ? 1 : $reading_time) . ' min read';
}

// Post views counter
function nblog_set_post_views() {
    if (is_single()) {
        $post_id = get_the_ID();
        $count = get_post_meta($post_id, 'post_views', true);
        $count = $count ? intval($count) + 1 : 1;
        update_post_meta($post_id, 'post_views', $count);
    }
}
add_action('wp_head', 'nblog_set_post_views');

// Add cache control headers for faster loading
function nblog_add_cache_headers() {
    if (!is_user_logged_in()) {
        header('Cache-Control: public, max-age=86400');
        header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 86400) . ' GMT');
    }
}
add_action('send_headers', 'nblog_add_cache_headers');

// Remove query strings from static resources (better caching)
function nblog_remove_query_strings($src) {
    if (strpos($src, 'ver=')) {
        $src = remove_query_arg('ver', $src);
    }
    return $src;
}
add_filter('style_loader_src', 'nblog_remove_query_strings', 9999);
add_filter('script_loader_src', 'nblog_remove_query_strings', 9999);

// Add body classes
function nblog_body_classes($classes) {
    if (is_front_page() || is_home()) $classes[] = 'homepage-template';
    if (wp_is_mobile()) $classes[] = 'is-mobile';
    return $classes;
}
add_filter('body_class', 'nblog_body_classes');

// Allow SVG uploads
function nblog_allow_svg($mimes) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}
add_filter('upload_mimes', 'nblog_allow_svg');

// Disable emoji scripts (faster loading)
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
?>