Выводим колонку «Размер» для библиотеки медифайлов в админке 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;
  • время на установку и активирование плагина занимает меньше минуты;
  • в любой момент можно отключить или включить этот функционал на своем сайте;
  • ну и просто это более эстетично, если вы являетесь разработчиком.

Выводим колонку Размер для библиотеки медифайлов в админке CMS WordPress

Благодарность этому парню Sridhar Katakam.

Как вставить в пост шорткод для вызова виджета

Задача такая — разместить в поcты на WordPress рекламные баннеры. Есть несколько вариантов: Вариант 1…

Плагин для вывода тегов Facebook Open Graph

Плагин для вывода тегов Open Graph для социальных сетей — Facebook Open Graph, Google+ and…

Перенос сайта с хостинга на хостинг

Простая инструкция, как перенести сайт на CMS WordPress с одного хостинга на другой. На самом…

Теги шаблонов — bloginfo

Использование <?php bloginfo( $show ); ?> Параметры $show ‘name’ — Показывает «Название сайта», установленное в…

1 комментарий

Виктория

Спасибочки огромное!

Ответить