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.
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,
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:
search
trouvée sur windlow.location
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é.