You are not wrong about conceptual limitation, but any development convention is inherently about constraints. Constraints are “bad”, but they are also often good and important.
In this specific case it’s slightly soured by Settings API being especially nasty snowflake, which historically led people to reinvent this particular wheel a lot.
However, your estimate of flexibility seems very off base.
Any admin page can be uniquely identified, otherwise they wouldn’t work in first place. You should look at functions like get_current_screen()
and work through admin-header.php
.
Since we are talking in context of commercial themes in the end it’s your business decision. Some people would insists on following same guidelines and conventions as free themes. Some would say it doesn’t matter, as long as quality and security don’t suffer.
Related Posts:
- Enable page templates. How?
- Where to store some per-template preferences?
- Plugin settings page template
- WordPress automatically created files like .theme-name / .plugin-name.php [closed]
- Change “posts per page” depending on width
- How do I get the size of an attachment file?
- Is get_option function cached?
- How to get slug of current category in taxonomy template?
- Using WordPress templating for HTML emails
- I put my blog on a subpage, how do I get page title?
- Outputting Canonical Resource URLs Across a Multisite Network?
- Restrict a search to a custom post type
- Test if page is child and has children, if so echo child pages also on grandchild pages
- How did you incorporate WooCommerce in your own WordPress theme?
- Correct process for a new Page Template?
- Templates & CSS – Proper Programming Practice?
- A shared custom taxonomy between two custom post types
- Why won’t register_setting() create a setting?
- Creating a custom category page with pagination
- New Template — copy existing template and change code? [duplicate]
- Same template for all the terms of a taxonomy
- Create a WordPress template without navigation and footer
- Template redirect is_tax() not working
- Hide Front-End Admin Bar Including 32 px Spacing
- Passing variables to template parts
- Show template loaded
- Change directory where get_header(), get_footer() and get_sidebar() look for templates
- How can I make my custom templates respect permissions?
- How to format shortcode’s HTML in external file
- How to replace WordPress sidebars (widget areas) with Gutenberg
- Turning on the 404 page on localhost
- Checking for page templates in child theme
- Is there an action hook that fires just before a template is loaded?
- post edit button on front end
- Settings API – sanitize_callback is not called and it leads to an incorrect behavior
- WordPress setting with select – where is my mistake?
- What’s the equivalent of front-page.php for a custom static page?
- Stylesheet comment header: Which header names are mandatory? [duplicate]
- How to add posts list to a page template?
- Valid HTML in Template Part
- Why do I get the same excerpt for all items in my RSS feed?
- What is this code trying to do? It was the cause of my 20s TTFB
- get_post_metadata() undefined when used in loop in RSS template
- Problem when linking out to separate file within foreach loop
- Conditional tags or Multiple files
- Getting term description in single post template
- Cannot edit style.css from admin panel, because the template is looking for style.min.css
- Echoing a variable inside a function
- Can I add a default Block to my custom theme?
- Remove post templates from the selection box menu when creating a single post
- How to convert the WordPress meta box Page Attributes->Page Template dropdown to radio buttons?
- global variables in templates
- Real Time Page Template Preview in WP Admin [closed]
- Best practice to update the file header.php
- page-{slug}.php vs. template-{slug}.php
- Understanding the Template hierarchy
- wp_enqueue_style and different styles for blog template
- Can I have both front-page.php and index.php?
- get_header(), get_footer() from plugin template
- Problem creating a custom category page with pagination
- If Posted After Date
- how can I add a “read more” tag directly in the template?
- Update template without undoing all my edits?
- How to get and set the post tag value within WP Query from URL?
- How to display specific child page template in wordpress
- The wordpress website is showing ‘w’ while it loads and in the footer
- how to properly include or get file contents in a wordpress theme
- Is there a wordpress template like this [closed]
- Assign Specific Template for Custom Post slug
- Modify just ONE page based on a template
- which template does wp_ tag_ cloud point to?
- Pagination problem (plugin wp-pagenavi) with a custom post type?
- Add an anchor link to a ‘plain’ HTML file, without over-writing the entire site?
- Whats the best practise on how to store json data from a custom settings page?
- Template part including not working
- Parent/Child themes – both CSS files loaded
- front-page.php includes a placeholder text field. How to get rid of it?
- Display a custom 404 page without a redirect
- Template and URL parameter problem
- get_users by role returns all users
- How do I add a textarea (multirow) option to my WordPress plugin?
- Validating Error with submit button
- How can I alter a post?
- What is the purpose of the $before and $after arguments on the the_title() function?
- When to use content-pagename.php?
- Using external file with WP_USE_THEMES set to false causing 404
- Current URL path variable
- How to install a wordpress website template on an existing website?
- Why is my no-results.php template moving my sidebar and footer into the main container?
- Given a page ID, how to display entire page (header/content/footer/sidebars) from a plugin hook
- Add_menu_page and saving settings
- Show page title just from the first child-page in template
- How to know which page/file WordPress is expecting?
- AJAX requests within templates
- Page.php vs Single.php
- How to limit block activity (insertion/deletion) to inside of a Block Template on the Admin Screen?
- change backend header options
- How to change post template
- WordPress template restored by mistake
- Unload templates; disable parent Template Parts using only “theme.json”