web-dev-qa-db-fra.com

Comment supprimer la vue liste de la bibliothèque multimédia?

J'aimerais supprimer le mode liste de la bibliothèque multimédia et permettre aux utilisateurs de ne voir que le mode grille. J'ai vu c'est une question de

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

dans upload.php

mais je ne veux pas modifier le noyau.

6
Simone.p

Ceci est un peu hacky, mais ne vous oblige pas à éditer des fichiers core, ce que vous ne devriez jamais faire, comme vous le savez.

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

Cela forcera toujours le mode dans la vue de grille.

Ce qu'il ne fait pas,

  • il ne supprime pas l'icône Liste
  • cela ne change pas l'argument de requête dans l'URL

Pour supprimer l’icône Liste, vous pouvez modifier l’effet suivant:

add_action('admin_head', function() {

    ?>

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

    <?php

});

Sinon, pour supprimer l'argument de requête ?mode=list de l'URL, vous pouvez:

  • utiliser JavaScript pour modifier la propriété search trouvée sur windlow.location
  • redirigez le côté serveur à l'aide de wp_redirect() en inspectant $_GET super global pour la clé de tableau de variables de requête mode (recommandé) .

Par exemple, vous pouvez réécrire le premier extrait pour:

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);

Ou alternativement sans la nécessité d'un bloc else,

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);

... l'extrait de code ci-dessus garantit que, peu importe ce qui se passe, l'une ou l'autre des URL suivantes,

... sera toujours redirigé vers,

Combiné au masquage de l’icône de la vue de la liste par l’injection de CSS sur le crochet admin_head, vous obtenez le résultat souhaité.

9
userabuser