Задача такая: просмотреть несколько сайтов и найти изображения, которые не оптимизированны для web’а, так как есть файлы весом более 5МБ. Как оптимизировать правильно изображения для сайта я писал в этой статье.
Итак, мы не будем просматривать на хостинге все папки и искать там большие картинки, мы не будем просматривать все медиафайлы подряд в поисках больших изображений, это все долго и как-то совсем грустно. Нам бы помогла вкладка “Размеры” в админке в разделе Медиафайлы. Но такой колонки там нет, поэтому придется создать ее.
Самый простой путь – добавить код в файл functions.php
, но:
- у нас несколько сайтов, и править шаблоны ради небольшого функционала не совсем правильно;
- к некоторым сайтам у меня нет доступа по ftp, а через админку править код тоже неправильно;
- некоторые шаблоны обновляются, и поэтому вносить изменения в код не желательно, они просто перетрутся при обновлении.
Значит, нужно взять этот код:
add_filter( 'manage_media_columns', 'sk_media_columns_filesize' ); /** * Filter the Media list table columns to add a File Size column. * * @param array $posts_columns Existing array of columns displayed in the Media list table. * @return array Amended array of columns to be displayed in the Media list table. */ function sk_media_columns_filesize( $posts_columns ) { $posts_columns['filesize'] = __( 'File Size', 'my-theme-text-domain' ); return $posts_columns; } add_action( 'manage_media_custom_column', 'sk_media_custom_column_filesize', 10, 2 ); /** * Display File Size custom column in the Media list table. * * @param string $column_name Name of the custom column. * @param int $post_id Current Attachment ID. */ function sk_media_custom_column_filesize( $column_name, $post_id ) { if ( 'filesize' !== $column_name ) { return; } $bytes = filesize( get_attached_file( $post_id ) ); echo size_format( $bytes, 2 ); } add_action( 'admin_print_styles-upload.php', 'sk_filesize_column_filesize' ); /** * Adjust File Size column on Media Library page in WP admin */ function sk_filesize_column_filesize() { echo '<style> .fixed .column-filesize { width: 10%; } </style>'; }
и добавить его в самописный плагин, который можно скачать здесь, установить этот плагин на своем сайте просто загрузив его через админку, Активировать и наблюдать там новую колонку “Размер” в Медиафайлах.
Какие преимущества решения данной задачи через плагин, а не с помощью внесения кода в functions.php
:
- код шаблона остается нетронутым, то есть шаблон не изменяется и всегда готов к обновлениям;
- не нужно иметь подключение в FTP, не нужно править файл
functions.php
через админку, что очень критично, так как любая опечатка в этом файле приведет к падению сайта, и без доступа по FTP вы ничего не сможете сделать, поэтому я настоятельно не рекомендую править что-то вfunctions.php
если у вас нет доступа к сайту по FTP; - время на установку и активирование плагина занимает меньше минуты;
- в любой момент можно отключить или включить этот функционал на своем сайте;
- ну и просто это более эстетично, если вы являетесь разработчиком.
Благодарность этому парню Sridhar Katakam.
Один комментарий к “Выводим колонку “Размер” для библиотеки медифайлов в админке CMS WordPress”
Виктория
Спасибочки огромное!