Remove specific items from Quick Edit menu of a Custom Post Type?

I would like to remove some items from the quick edit screen on a custom post type.

I would like to remove “slug”, “date” and “password”, as they will never not be used by end users.

Read More

quick edit cpt

I’m open to any suggestions!

Related posts

Leave a Reply

3 comments

  1. There’s no hooks to modify the Quick Edit, it has to be done with CSS and/or jQuery.

    The plugin Adminimize is very good to hide administrative elements, CPTs included.

    But in the Quick Edit box, for lack of CSS classes or ID’s to target, it is not possible to hide the slug field, and only possible to partially hide the date adding a custom option as in the following snapshot.

    adminimize cpt
    click to enlarge


    So, a pure jQuery solution is necessary:

    add_action( 'admin_head-edit.php', 'wpse_59871_script_enqueuer' );
    
    function wpse_59871_script_enqueuer() 
    {    
        /**
           /wp-admin/edit.php?post_type=post
           /wp-admin/edit.php?post_type=page
           /wp-admin/edit.php?post_type=cpt  == gallery in this example
         */
    
        global $current_screen;
        if( 'edit-gallery' != $current_screen->id )
            return;
        ?>
        <script type="text/javascript">         
            jQuery(document).ready( function($) {
                $('span:contains("Slug")').each(function (i) {
                    $(this).parent().remove();
                });
                $('span:contains("Password")').each(function (i) {
                    $(this).parent().parent().remove();
                });
                $('span:contains("Date")').each(function (i) {
                    $(this).parent().remove();
                });
                $('.inline-edit-date').each(function (i) {
                    $(this).remove();
                });
            });    
        </script>
        <?php
    }
    

    Related quick-edit Q&A’s that I’ve worked

  2. Remove category select with filter:

    add_filter( 'quick_edit_show_taxonomy', function( $show, $taxonomy_name, $view ) {
    
        if ( 'category' == $taxonomy_name )
            return false;
    
        return $show;
    }, 10, 3 );
    
  3. This solution doesn’t work if you use WordPress in another language than English:

    $('span:contains("Password")').each(function (i) {
        $(this).parent().parent().remove();
    });
    

    If you want to use it independently of language you should use something like this:

    $( "input[class*='password']" ).each(function (i) {
        $(this).closest('div').remove();
    })
    

    It removes the parent DIV of INPUT with class that contains word “password”.