Quick Edit: Allow Quick Edit to be disabled for custom post types or taxonomies.

Some custom post types or taxonomies may not need the Quick Edit functionality, in which case adding hidden fields and rendering the form with the data to edit would be redundant.

This commit introduces two filters for more granular control:

* `quick_edit_enabled_for_post_type`
* `quick_edit_enabled_for_taxonomy`

Follow-up to [8857], [9083], [9098].

Props garyc40, sabernhardt, mukesh27, costdev, oglekler, wyrfel, peterwilsoncc, faguni22, robinwpdeveloper, webcommsat, johnbillion, azaozz, hellofromTonya, GunGeekATX, Jick, mikeschinkel, jane, nacin, helen, wonderboymusic, DrewAPicture, SergeyBiryukov.
Fixes #16502, #19343, #57596.
Built from https://develop.svn.wordpress.org/trunk@56611


git-svn-id: http://core.svn.wordpress.org/trunk@56123 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Sergey Biryukov 2023-09-18 13:19:19 +00:00
parent 7520c3fb46
commit 1b5fc476f8
3 changed files with 47 additions and 14 deletions

View File

@ -1168,7 +1168,12 @@ class WP_Posts_List_Table extends WP_List_Table {
} }
} }
get_inline_data( $post ); /** This filter is documented in wp-admin/includes/class-wp-posts-list-table.php */
$quick_edit_enabled = apply_filters( 'quick_edit_enabled_for_post_type', true, $post->post_type );
if ( $quick_edit_enabled ) {
get_inline_data( $post );
}
} }
/** /**
@ -1475,7 +1480,17 @@ class WP_Posts_List_Table extends WP_List_Table {
__( 'Edit' ) __( 'Edit' )
); );
if ( 'wp_block' !== $post->post_type ) { /**
* Filters whether Quick Edit should be enabled for the given post type.
*
* @since 6.4.0
*
* @param bool $enable Whether to enable the Quick Edit functionality. Default true.
* @param string $post_type Post type name.
*/
$quick_edit_enabled = apply_filters( 'quick_edit_enabled_for_post_type', true, $post->post_type );
if ( $quick_edit_enabled && 'wp_block' !== $post->post_type ) {
$actions['inline hide-if-no-js'] = sprintf( $actions['inline hide-if-no-js'] = sprintf(
'<button type="button" class="button-link editinline" aria-label="%s" aria-expanded="false">%s</button>', '<button type="button" class="button-link editinline" aria-label="%s" aria-expanded="false">%s</button>',
/* translators: %s: Post title. */ /* translators: %s: Post title. */

View File

@ -425,12 +425,17 @@ class WP_Terms_List_Table extends WP_List_Table {
$name $name
); );
$output .= '<div class="hidden" id="inline_' . $qe_data->term_id . '">'; /** This filter is documented in wp-admin/includes/class-wp-terms-list-table.php */
$output .= '<div class="name">' . $qe_data->name . '</div>'; $quick_edit_enabled = apply_filters( 'quick_edit_enabled_for_taxonomy', true, $taxonomy );
/** This filter is documented in wp-admin/edit-tag-form.php */ if ( $quick_edit_enabled ) {
$output .= '<div class="slug">' . apply_filters( 'editable_slug', $qe_data->slug, $qe_data ) . '</div>'; $output .= '<div class="hidden" id="inline_' . $qe_data->term_id . '">';
$output .= '<div class="parent">' . $qe_data->parent . '</div></div>'; $output .= '<div class="name">' . $qe_data->name . '</div>';
/** This filter is documented in wp-admin/edit-tag-form.php */
$output .= '<div class="slug">' . apply_filters( 'editable_slug', $qe_data->slug, $qe_data ) . '</div>';
$output .= '<div class="parent">' . $qe_data->parent . '</div></div>';
}
return $output; return $output;
} }
@ -485,12 +490,25 @@ class WP_Terms_List_Table extends WP_List_Table {
esc_attr( sprintf( __( 'Edit &#8220;%s&#8221;' ), $tag->name ) ), esc_attr( sprintf( __( 'Edit &#8220;%s&#8221;' ), $tag->name ) ),
__( 'Edit' ) __( 'Edit' )
); );
$actions['inline hide-if-no-js'] = sprintf(
'<button type="button" class="button-link editinline" aria-label="%s" aria-expanded="false">%s</button>', /**
/* translators: %s: Taxonomy term name. */ * Filters whether Quick Edit should be enabled for the given taxonomy.
esc_attr( sprintf( __( 'Quick edit &#8220;%s&#8221; inline' ), $tag->name ) ), *
__( 'Quick&nbsp;Edit' ) * @since 6.4.0
); *
* @param bool $enable Whether to enable the Quick Edit functionality. Default true.
* @param string $taxonomy Taxonomy name.
*/
$quick_edit_enabled = apply_filters( 'quick_edit_enabled_for_taxonomy', true, $taxonomy );
if ( $quick_edit_enabled ) {
$actions['inline hide-if-no-js'] = sprintf(
'<button type="button" class="button-link editinline" aria-label="%s" aria-expanded="false">%s</button>',
/* translators: %s: Taxonomy term name. */
esc_attr( sprintf( __( 'Quick edit &#8220;%s&#8221; inline' ), $tag->name ) ),
__( 'Quick&nbsp;Edit' )
);
}
} }
if ( current_user_can( 'delete_term', $tag->term_id ) ) { if ( current_user_can( 'delete_term', $tag->term_id ) ) {

View File

@ -16,7 +16,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '6.4-alpha-56610'; $wp_version = '6.4-alpha-56611';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.