Category: Project 1

  • Project 1 Update: The Functions File Diet Plan

    Remember our promise to build a WordPress theme that wouldn’t make developers cry? Well, we’re back with update, and it’s all about putting functions.php on a strict diet. Not WordPress’s version of a diet, mind you – where they generously include every feature you never asked for – but an actual, meaningful reduction in digital bloat.

    First things first: our file structure. We’ve kept it minimalist – no fancy bells and whistles, just the essentials:

    404.php         functions.php    js/
    archive.php     header.php       page.php
    footer.php      index.php        single.php
                                    template-parts/

    Beautiful, isn’t it? Like a capsule wardrobe for your WordPress theme. No drawers full of unused templates collecting digital dust.

    Now, let’s dive into functions.php, where we’re doing the equivalent of spring cleaning (in February, because who follows rules anymore?). First up, we’re adding support for the features we actually want:

    add_theme_support('title-tag');
    add_theme_support('post-thumbnails');
    add_theme_support('custom-logo');
    add_theme_support('html5', array('navigation','style'));
    add_theme_support('automatic-feed-links');
    add_theme_support('post-formats', array(
        'aside','gallery','link','image',
        'quote','status','video','audio','chat'
    ));
    add_theme_support('custom-background');
    add_theme_support('menus');

    Yes, we’re keeping title tags (because SEO is still a thing), post thumbnails (because we’re not savages), and menus (because even minimalists need navigation). We’re even throwing in post formats – call us generous.

    For navigation, we’re setting up a proper menu structure:

    register_nav_menus(array(
        'primary' => __('Primary Menu', 'lowvol-25'),
        'secondary'  => __('Secondary Menu', 'lowvol-25'),
        'tertiary'  => __('Tertiary Menu', 'lowvol-25'), 
    ));

    But here’s where it gets fun. WordPress, in its infinite wisdom, loves to include things you never asked for. So we’re channeling our inner Marie Kondo and asking, “Does this spark joy?” Spoiler alert: most of it doesn’t.

    wp_dequeue_style('classic-theme-styles');
    wp_dequeue_style('wp-block-library');
    wp_dequeue_style('global-styles');
    wp_dequeue_style('core-block-supports');

    Goodbye, unnecessary style blocks. You won’t be missed.

    And because we live in 2025, not 1995, we’re also saying farewell to some… interesting default features:

    remove_action('wp_head', 'print_emoji_detection_script', 7);
    remove_action('wp_print_styles', 'print_emoji_styles');
    remove_action('wp_head', 'wp_print_auto_sizes_contain_css_fix', 1);

    Yes, WordPress still thinks we’re printing websites. Save a tree, use a screenshot instead. And those emoji scripts? Unless your client is a 13-year-old’s diary blog, you probably don’t need those loading on every. single. page.

    The result? A functions file that doesn’t make your browser cry for mercy. It’s like going from a “War and Peace”-sized manuscript to a concise haiku. Sure, we might add more features later, but they’ll be features we actually want, not just digital breadcrumbs WordPress scattered around because it felt like being helpful.

    Stay tuned for our next update, where we’ll tackle something equally thrilling. After all, there’s still plenty of WordPress quirks left to untangle.

  • Project 1: Building a WordPress Theme That Won’t Make Developers Cry

    Remember our last chat about classic themes? Well, we didn’t just talk the talk – we’re walking the walk. Right into a wall of block editor frustrations, courtesy of Twenty Twenty-Five. Nothing quite like spending your morning trying to make a header sticky, only to find yourself stuck instead.

    You see, we’re currently running WordPress’s latest masterpiece, Twenty Twenty-Five, and it’s been… an experience. The kind of experience that makes you question if “user-friendly” actually means “developer-hostile.” Want to adjust some padding? Better clear your schedule. Need that header to stick? Well, stick around – you’ll be here a while. All these “simple” tasks that could be solved with a few lines of CSS have somehow transformed into digital escape rooms.

    So, we’re doing something about it. Welcome to Project 1: “Building a WordPress Theme That Won’t Make Developers Cry.” We’re creating a classic theme that doesn’t make you want to throw your mechanical keyboard out the window. Revolutionary concept, right?

    Here’s the game plan: We’re stripping away the bloat faster than a developer drops Internet Explorer support. Our goal? A theme that’s less “Swiss Army knife with 47 attachments you’ll never use” and more “perfectly balanced chef’s knife.” We’re talking minimal code, clean architecture, and a foundation that doesn’t require archaeological excavation to understand.

    Think of it as a blank canvas, but one that doesn’t make you paint with your eyes closed and one hand tied behind your back. We’re leveraging WordPress’s built-in functions where they make sense (because contrary to popular belief, not everything needs a custom solution), but we’re not forcing ourselves to use them just because they’re there. It’s like having a safety net, but one that doesn’t entangle you every time you try to move.

    This is just the beginning of our journey to create something that developers actually want to develop with. Consider this Project 1 of our “Making WordPress Development Great Again” saga (though hopefully with less controversial hashtags).

    Stay tuned for more updates as we transform our frustration into function.php gold. Because sometimes the best way to think inside the box is to build a better box.