>
>
>
__( ‘Primary Menu’, ‘mauveverse’ ),
‘footer’ => __( ‘Footer Menu’, ‘mauveverse’ ),
] );
add_image_size( ‘mv-card’, 700, 400, true );
}
add_action( ‘after_setup_theme’, ‘mauveverse_setup’ );
// ── Enqueue Styles & Scripts ─────────────────────────────────
function mauveverse_assets() {
wp_enqueue_style(
‘google-fonts’,
‘https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800;900&family=Montserrat:wght@700;800;900&display=swap’,
[],
null
);
wp_enqueue_style( ‘mauveverse-style’, get_stylesheet_uri(), [ ‘google-fonts’ ], ‘2.0’ );
wp_enqueue_script( ‘mauveverse-main’, get_template_directory_uri() . ‘/assets/js/main.js’, [], ‘2.0’, true );
}
add_action( ‘wp_enqueue_scripts’, ‘mauveverse_assets’ );
// ── Excerpt Length ────────────────────────────────────────────
function mauveverse_excerpt_length( $length ) { return 25; }
add_filter( ‘excerpt_length’, ‘mauveverse_excerpt_length’ );
function mauveverse_excerpt_more( $more ) { return ‘…’; }
add_filter( ‘excerpt_more’, ‘mauveverse_excerpt_more’ );
// ── Reading Time Helper ───────────────────────────────────────
function mauveverse_reading_time() {
$content = get_post_field( ‘post_content’, get_the_ID() );
$word_count = str_word_count( strip_tags( $content ) );
$minutes = max( 1, (int) ceil( $word_count / 200 ) );
return $minutes . ‘ min read’;
}
// ── Custom Nav Walker ─────────────────────────────────────────
class MauveVerse_Nav_Walker extends Walker_Nav_Menu {
function start_lvl( &$output, $depth = 0, $args = null ) {
$output .= ‘
‘;
}
}
// ── Widgets ───────────────────────────────────────────────────
function mauveverse_widgets_init() {
register_sidebar( [
‘name’ => __( ‘Blog Sidebar’, ‘mauveverse’ ),
‘id’ => ‘blog-sidebar’,
‘description’ => __( ‘Widgets in the blog post sidebar.’, ‘mauveverse’ ),
‘before_widget’ => ‘
‘,
‘before_title’ => ‘
‘,
] );
}
add_action( ‘widgets_init’, ‘mauveverse_widgets_init’ );