Torbalan Trolski
Well-Known Member
След като от yahoo спряха smush.it сървиса безплатната версия на плъгина стана безполезна и го разкарах.
Обаче пичовете не обичат да почистват след себе си и ставят една сюрия безполезни лайна в базата.
С този скрипт може да си ги изчистите. Слагате в главната директория извиквате го и го триете. Спестява около 300К на 1К изображения, зависи разбира се от темата и броя на тъмбнейлите, които се генерират.
Обаче пичовете не обичат да почистват след себе си и ставят една сюрия безполезни лайна в базата.
С този скрипт може да си ги изчистите. Слагате в главната директория извиквате го и го триете. Спестява около 300К на 1К изображения, зависи разбира се от темата и броя на тъмбнейлите, които се генерират.
PHP:
<!DOCTYPE HTML>
<html>
<head>
<title>WP Smush.it Cleanup</title>
<meta charset="UTF-8" />
<meta name="robots" content="noindex">
</head>
<body>
<pre>
<?php
include 'wp-load.php';
#------------------------------------------------------------------------------
function format_bytes( $bytes, $precision = 2 ) {
$units = array('B', 'KB', 'MB', 'GB', 'TB');
$bytes = max($bytes, 0);
$pow = floor(($bytes ? log($bytes) : 0) / log(1024));
$pow = min($pow, count($units) - 1);
$bytes /= pow(1024, $pow);
return round($bytes, $precision) . ' ' . $units[$pow];
}
#------------------------------------------------------------------------------
function get_all_attachments()
{
global $wpdb;
$qry = "SELECT ID FROM {$wpdb->posts} WHERE post_type = 'attachment';";
$res = $wpdb->get_results($qry);
return $res;
}
#------------------------------------------------------------------------------
$attachments = get_all_attachments();
$savings = 0;
foreach ( $attachments as $attachment ) {
$meta = get_post_meta($attachment->ID, '_wp_attachment_metadata', true);
if(isset($meta['wp_smushit'])) {
$savings += strlen($meta['wp_smushit']);
unset($meta['wp_smushit']);
}
if( isset($meta['sizes']) ) {
foreach ($meta['sizes'] as $size => $thumb ) {
if( isset($thumb['wp_smushit']) ) {
$savings += strlen($thumb['wp_smushit']);
unset( $meta['sizes'][$size]['wp_smushit'] );
}
}
}
update_post_meta($attachment->ID, '_wp_attachment_metadata', $meta );
}
echo "Cleaned : " . format_bytes($savings) . " from " . count($attachments) . " attachments";
?>
</pre>
</body>
</html>