[wp-trac] [WordPress Trac] #54795: Bootstrap: Move navigation post type hooks to `admin-filters.php`
WordPress Trac
noreply at wordpress.org
Wed Jan 12 03:10:41 UTC 2022
#54795: Bootstrap: Move navigation post type hooks to `admin-filters.php`
----------------------------+-----------------------------
Reporter: dlh | Owner: (none)
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Bootstrap/Load | Version: trunk
Severity: normal | Keywords:
Focuses: |
----------------------------+-----------------------------
WordPress 5.9 adds some new actions and filters to `default-filters.php`
into hooks that typically run only in the admin, such as `admin_head` and
`admin_footer-widgets.php`.
I can see that there are plenty of other similar examples that predate
5.9, and, generally, it's not a big deal.
However, three of these new hooks go one step further by adding callbacks
that are themselves only loaded in the admin:
{{{
add_action( 'use_block_editor_for_post_type',
'_disable_block_editor_for_navigation_post_type', 10, 2 );
add_action( 'edit_form_after_title',
'_disable_content_editor_for_navigation_post_type' );
add_action( 'edit_form_after_editor',
'_enable_content_editor_for_navigation_post_type' );
}}}
There is precedent, too, for adding admin-only callbacks in `default-
filters.php`, but the implications are more noticeable: On PHP 8+, a fatal
error will occur if those hooks fire in a non-admin context and attempt to
call an undefined function.
I hear you asking: Isn't somebody doing it wrong if those hooks run
outside the admin? Probably. Did I, myself, manually apply the
`use_block_editor_for_post_type` filter in a plugin? I sure did, and I'll
fix the plugin :)
Still, I was on the fence about whether adding admin-only functions to
`default-filters.php` is also not quite doing it right. It risks creating
new warnings or fatal errors without serving an obvious (to me) purpose
for core. [32653] described `admin-filters.php` as "[containing] functions
that won't work outside of admin context." So, I thought I would open a
ticket to ask:
1. Should the new default actions and filters in 5.9 that call admin-only
functions be moved to `admin-filters.php`? (They seemed to work as
expected there when I tested.)
2. Should the three admin-only functions instead be globally included, not
admin-only?
--
Ticket URL: <https://core.trac.wordpress.org/ticket/54795>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list