it-swarm.com.de

Wie entferne ich die Listenansicht aus der Medienbibliothek?

Ich möchte den Listenmodus aus der Medienbibliothek entfernen und den Benutzern nur den Raster-Modus anzeigen lassen. Ich habe gesehen, es ist eine Frage von

$modes = array( 'grid', 'list' );

in upload.php

aber ich möchte den Kern nicht modifizieren.

6
Simone.p

Dies ist ein wenig hacky, erfordert jedoch keine Bearbeitung der Kerndateien, was Sie, wie Sie wissen, niemals tun sollten.

add_action('admin_init', function() {
    $_GET['mode'] = 'grid';
}, 100);

Dadurch wird der Modus immer in die Rasteransicht versetzt.

Was es nicht tut,

  • das Symbol für die Listenansicht wird nicht entfernt
  • das Abfrageargument in der URL wird nicht geändert

Um das Listenansichtssymbol zu entfernen, können Sie folgende Aktionen ausführen:

add_action('admin_head', function() {

    ?>

    <style type="text/css">
        .view-switch .view-list {
            display: none;
        }
    <style>

    <?php

});

Alternativ können Sie Folgendes tun, um das ?mode=list-Abfrageargument aus der URL zu entfernen:

  • verwenden Sie JavaScript, um die search -Eigenschaft in windlow.location zu ändern.
  • leiten Sie die Benutzerserverseite mithilfe von wp_redirect() um, indem Sie $_GET super global auf den Array-Schlüssel für die Abfragevariable mode überprüfen (empfohlen) .

Sie können beispielsweise das erste Snippet wie folgt umschreiben:

add_action('admin_init', function() {

    if ( isset( $_GET['mode'] ) && $_GET['mode'] !== 'grid' ) {
        wp_redirect(admin_url('upload.php?mode=grid'));
        exit;
    } else {
        //required by upload.php, handle the case if user just navigates to... 
        //http://www.example.com/wp-admin/upload.php (with no mode query argument)
        $_GET['mode'] = 'grid';
    }

}, 100);

Oder eine Alternative ohne einen else-Block,

add_action('admin_init', function() {

    if ( strpos(admin_url('upload.php'), $_SERVER['REQUEST_URI']) !== false 
         || (isset($_GET['mode']) && $_GET['mode'] === 'list') ) {
        wp_redirect(admin_url('upload.php?mode=grid'));
        exit;
    } 

}, 100);

... das obige Snippet stellt sicher, dass egal welche, eine der folgenden URLs,

... wird immer weitergeleitet an,

In Kombination mit dem Ausblenden des Listenansicht-Symbols durch Einfügen von CSS in den admin_head-Hook wird das gewünschte Ergebnis erzielt.

9
userabuser