WordPress.org

Ready to get started?Download WordPress

Forums

Quick Edit hangs for too many users (3 posts)

  1. promaty
    Member
    Posted 2 years ago #

    Hey everyone. So my blog has over 60,000 users and this makes some parts of admin panel to load ridiculously long when wordpress is trying to generate a drop-down users list.

    One part was for editing individual posts, but in that case I can simply remove the authors' meta box:

    add_action( 'admin_menu', 'remove_meta_box_custom' );
    function remove_meta_box_custom() {
    	remove_meta_box('authordiv', 'post', 'normal');
    	remove_meta_box('authordiv', 'page', 'normal');
    }

    Another part is when you see the list of all posts and it loads the user list for quick edit function. When it finally loads, I click "Quick Edit" and it freezes completely (probably too tough for javascript). I managed to fix that by commenting out the call for loop function in "wp-admin/includes/class-wp-list-posts-table.php", but is there any other way to do that without editing any core files?

    I tried disabling the quick edit function:

    add_filter('post_row_actions','remove_quick_edit',10,1);
    function remove_quick_edit( $actions ) {
    	unset($actions['inline hide-if-no-js']);
    	return $actions;
    }

    (no quick edit function, but I still have to wait for the loop to finish)

    Tried intercepting the dropdown filter:

    add_filter( 'wp_dropdown_users', 'no_dropdown_users' );
    function no_dropdown_users($output) {
    	return '<select name="post_author"></select>';
    }

    (Quick edit works without author field, but I still have to wait ~15s for page to load)

    Any ideas how to get rid of that loop?

  2. ced64k
    Member
    Posted 2 years ago #

    No idea ?

  3. frankylol
    Member
    Posted 1 year ago #

    this is very hacky but it worked for me. the site i am working on has 150,000 + users

    add_action( 'admin_menu', 'remove_meta_box_custom' );function remove_meta_box_custom() { remove_meta_box('authordiv', 'post', 'normal'); remove_meta_box('authordiv', 'page', 'normal');}
    add_filter('post_row_actions','remove_quick_edit',10,1);function remove_quick_edit( $actions ) { unset($actions['inline hide-if-no-js']); return $actions;}
    add_filter( 'wp_dropdown_users', 'no_dropdown_users' );function no_dropdown_users($output) { return '<select name="post_author"></select>';}
    
    function _break_user_list(&$object) {
            global $wpdb;
            $object->query_from = 'FROM '.$wpdb->posts;
            $object->where_where = 'WHERE ID=1';
    }
    if ( current_user_can('manage_options') && isset($_GET['post_type']) && ($_GET['post_type'] == 'page' || $_GET['post_type'] == 'post')) {
    	add_filter('pre_user_query', '_break_user_list');
    }

    what were doing here is breaking the users object when an admin user is looking at posts and pages listings as well as individual post and page edit screens. hacktastic but it works

Topic Closed

This topic has been closed to new replies.

About this Topic