Выводим колонку «Размер» для библиотеки медифайлов в админке CMS WordPress
Задача такая: просмотреть несколько сайтов и найти изображения, которые не оптимизированны для 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.
Задача такая — разместить в поcты на WordPress рекламные баннеры. Есть несколько вариантов: Вариант 1…
Плагин для вывода тегов Open Graph для социальных сетей — Facebook Open Graph, Google+ and…
Простая инструкция, как перенести сайт на CMS WordPress с одного хостинга на другой. На самом…
Использование <?php bloginfo( $show ); ?> Параметры $show ‘name’ — Показывает «Название сайта», установленное в…
1 комментарий
Ответить
Спасибочки огромное!