メディアライブラリからリストモードを削除して、ユーザーにグリッドモードのみを表示させたいのですが。私はそれが問題だと思った
$modes = array( 'grid', 'list' );
upload.php
に
しかし、私はコアを変更したくありません。
これは少し厄介ですが、コアファイルを編集する必要はありません。ご存知のとおり、絶対に編集しないでください。
add_action('admin_init', function() {
$_GET['mode'] = 'grid';
}, 100);
これは常にモードをグリッド表示に強制します。
しないこと、
リストビューアイコンを削除するには、次のようなことをします。
add_action('admin_head', function() {
?>
<style type="text/css">
.view-switch .view-list {
display: none;
}
<style>
<?php
});
あるいは、URLから?mode=list
クエリ引数を削除するには、次のようにします。
windlow.location
にあるsearch
プロパティを変更します。mode
クエリ変数配列キー (推奨) について$_GET
super globalを調べて、wp_redirect()
を使用してユーザーサーバー側をリダイレクトします。たとえば、最初のスニペットを次のように書き直すことができます。
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);
あるいは、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);
...上記のスニペットでは、次のURLのどちらを使用しても問題ありません。
...は常にリダイレクトされます
admin_head
フックにCSSをインジェクトすることでリストビューアイコンを隠すことと組み合わせることで、望み通りの結果が得られます。