Due to historical context implementation of static front pages in WordPress is, simply put, a horror. This is not something it was meant to do originally and the way it was bolted on at a certain point is opposite of smooth.
Under these constraints it would be hard to impossible to say what would be the “perfect” approach. You are dealing with very imperfect situation already and core is not opinionated about implementation details, so there is little guidance.
I would say your approach should not be technically driven, it should be designed first. One niche’s idea of modular front page could be quite different from other’s.
- Start with a design (by which I mean design, not just a pretty look).
- Clarify as much as possible desired functionality of the blocks.
- Evaluate possible technical implementation based on those needs.
Related Posts:
- Disable front-page.php template
- Custom page template with custom fields
- Injecting pre-defined text from custom page template to editor
- How to use shortcode inside of shortcode in theme
- When to use is_home() vs is_front_page()?
- Can I create my own “Recent Posts” widget or customize the existing one?
- How to store widget fields data as an array?
- Adding a div to wrap widget content after the widget title
- How to move page template files like page-{slug}.php to a sub-directory?
- What is the difference between wp_register_sidebar_widget and register_widget?
- How to enqueue script if widget is displayed on page?
- How to add a checkbox element to attachments editor with example
- How to move page templates to custom folder?
- Call dynamic_sidebar but include/exclude named widgets?
- Should I use set_transient or update_option?
- Create “File-less” Page Template in Functions.php
- HowTo: Add Class to Sidebar Widget List-Items
- Is it possible to manipulate the list of page templates?
- Having different sidebar content for MANY pages?
- register_sidebar ignores ‘id’ and ‘class’
- Adding items to page template dropdown on Page Edit Screen
- How wp_cache is supposed to work, and does it help with performance?
- How does WordPress decide what template to use as frontpage
- How do I show sticky posts on a static front page that also contains content?
- How to determine the current widget’s parent container (sidebar widget id)
- Adding widgets programatically: how to avoid collisions?
- Adding Content Areas to Custom Page Template
- Add class to before_widget for all widgets with a dropdown and a counter
- Enabling Widgets By Default in Custom Theme Development
- use add_action(‘wp_head’) in a widget for generating dynamic CSS styles
- Registering Sidebars and Sidebar Widgets. Sidebar Widgets Not Displaying
- File included into functions.php via require_once() won’t echo?
- Trouble with conditional tags
- Adding inline styles from a widget
- How to create custom home page via plugin?
- modify a output of a widget
- Context aware widgets. My work in progress
- How to determine which sidebar the widget has been added to, via widget admin?
- How can I add an incremental class identifier to my sidebar widgets?
- How to Modify a Widgets UL and/or LI Classes
- Should use widgets in this case?
- Enabling Default Widgets in a Custom Theme
- Pagination & get_pages?
- Change loop order via form or link (jquery, not URL)
- how to create theme based widget that can be drop in sider bar or footer
- Returning Variables back into a template
- Set front page as static page [closed]
- Page attribute template dropdown not displayed even the syntax is correct
- How to add a text widget during theme activation
- Adding WordPress colorpicker in widget settings
- How to add multiple custom widget areas
- How do I display the “Archives” widget layout (sidebar) in WordPress by ‘year’ then by ‘months’?
- Why is unfiltered html allowed in custom fields for author / contributor roles?
- Do I really need the div class entry?
- Is it a good idea to make whole theme widgetized?
- Using the theme options to change background
- Theme Customizer – Choose where widget area appears, to let users organise widgets
- Add tinymce to widget textareas
- How to determine which registered sidebar area a custom widget is loaded into
- Page template across themes
- Widgets with groups / sub widgets? Widget in a widget?
- How i can get widgets areas working in customizer?
- How to determine if post has widget content?
- wp_editor() usage in custom meta box
- Where can I access my custom page template?
- searchform.php override not working
- WordPress page templates in a directory
- Can I show all the template files that are being used on my site?
- Implement content-nosidebar.php / content-leftsidebar.php
- Set a static front-page as a landing page programmatically
- get_page_template returning nothing
- Custom Field returning Numerical Value for Image rather than URL
- Widget items disappearing
- Multiple Page Templates & CSS
- How can i initialize a widgetized sidebar (with widgets)
- How do you force a sidebar widget to have a container div around all child widgets?
- Add widgets to available widgets section without changing the theme?
- Highest number of WordPress Custom Page Templates?
- Custom post fields
- Single Page theme [closed]
- Custom metabox for custom page template
- Custom Widget options in theme
- Displaying recent post excerpts on static front page
- Why is the Page Template dropdown menu using the wrong file name?
- Can I have a widget and sidebars in custom theme?
- Can’t work out why widget contents disappear from admin
- How to add “Template” option in page attributes panel?
- How do I Add images uploaded in the post to a default custom field
- Disable dashboard drag&drop
- How to check if a WordPress core block is active in sidebar
- Save Widget State Between Theme Swaps?
- Custom Field created in add_meta_boxes reappearing itself again in the default Custom Metabox
- How do you replace content generated by custom fields with custom blocks in Block Editor?
- How to create a custom page(not a template) in a theme
- “Add A Widget” button in the Customizer
- Sort wp_query by sum of two meta fields
- Template selection area is not visible on page editor sidebar in wordpress twentty sixteen default theme
- Move default page templates to sub directory
- What’s the best practice way of handling custom fields in different post formats?
- $this->get_field_id() not working in customizer