Benutzer löschen ohne Zuordnungs-Option

  • Ich betreibe eine WordPress-Website mit über 71.000 Benutzern.

    Möchte ich einen davon löschen, habe ich ein Problem. Denn WP lädt dann zur Darstellung in dem Auswahlfeld für die Zuordnung der Beiträge des zu entfernenden Benutzers zu einem anderen User alle zigtausend Datensätze, was bei dieser Anzahl nicht mehr möglich ist. Der Quelltext würde sich ja auch um 71.000 Zeilen verlängern.

    Wie bekomme ich es hin, dass die User nicht mehr eingelesen werden, wenn die Seite zum Löschen eines Users aufgerufen wird. Entweder könnte aus dem Select-Feld ein normales Textfeld werden, oder das Select-Feld könnte ganz verschwinden, weil ohnehin die vorhandenen Beiträge beim Löschen eines Benutzers regelmäßig mit entfernt werden sollen.

    Ich bin für jeden brauchbaren Tipp dankbar.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Ein Blick in den Quellcode von [FONT=courier new]/wp-admin/users.php[/FONT] zeigt, dass WordPress für dieses Auswahlfeld die Funktion [FONT=courier new]wp_dropdown_users()[/FONT] mit u.a. dem Parameter [FONT=courier new]'name' => 'reassign_user'[/FONT] verwendet. Man könnte das also über einen [FONT=courier new]wp_dropdown_users_args[/FONT] Filter lösen, der dieses Auswahlfeld identifiziert und dann z.B. nur Benutzer mit mind. der Administrator Rolle anzeigt, das werden einige weniger sein...

    PHP
    function b3317133_wp_dropdown_users_args( $query_args, $r ) {
        if ( !empty( $r['name'] ) && $r['name'] == 'reassign_user' ) {
            $query_args['role__in'] = 'administrator';
        }
        return $query_args;
    }
    add_filter( 'wp_dropdown_users_args', 'b3317133_wp_dropdown_users_args', 10, 2 );
  • PHP
    function b3317133_wp_dropdown_users_args( $query_args, $r ) {
        if ( !empty( $r['name'] ) && $r['name'] == 'reassign_user' ) {
            $query_args['role__in'] = 'administrator';
        }
        return $query_args;
    }
    add_filter( 'wp_dropdown_users_args', 'b3317133_wp_dropdown_users_args', 10, 2 );

    Das funktioniert prima!

    Allerbesten Dank von Klaus.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!