[РЕШЕНО] Как записать функцию в плагин?
Ответ
https://wp-kama.ru/function/add_filter
function __construct(){
add_filter( 'wp_generate_attachment_metadata', array( &$this, 'replace_uploaded_image'));
}
function replace_uploaded_image($image_data) {
Вопрос
Сваял небольшой код, который после работы плагина заносит дополнительные размеры в базу данных и переименовывает пару файлов
как этот код добавить в плагин ? этот код дополняет плагин и более ничего не делает.
add_filter('wp_generate_attachment_metadata','replace_uploaded_image');
function replace_uploaded_image($image_data) {
$upload_dir = wp_upload_dir();
$image_name = basename($image_data['file']); // имя из таблицы массива "name.jpg"
$location_fils = $upload_dir['path'] . '/' . $image_name . '.temp'; // адрес + имя + .temp
// get the attributes of the source image
list($imageWidth, $imageHeight, $imageType, $imageAttr) = getimagesize($location_fils);
// there are different php functions depending on what type of image it is, so check the type
switch($imageType) {
//GIF
case 1:
break;
//JPG
case 2:
// заносим копию с -lq в базу данных
$name_jpg = basename($image_data['file']); // name.jpg
$name_lq_png = preg_replace("/\.jpg$/", "-lq.jpg", $name_jpg ); // name-lq.jpg
$image_data['sizes']['as_original'] = Array(
"file" => $name_lq_png,
"width" => $imageWidth,
"height" => $imageHeight,
"mime-type" => "image/jpeg"
);
break;
//PNG
case 3:
// переименование псевдо оригинала в копию с именем -lq
$name_png = basename($image_data['file']); // name.png
$name_lq_png = preg_replace("/\.png$/", "-lq.png", $name_png ); // name-lq.png
$image_location_old = $upload_dir['path'] . '/' . $name_png; // site.com/name.png
$image_location_new = $upload_dir['path'] . '/' . $name_lq_png; // site.com/name-lq.png
rename($image_location_old, $image_location_new); // name.png на name-lq.png
rename($image_location_old.'.temp', $image_location_old); // name.png.temp на name.png
$image_data['sizes']['as_original'] = Array(
"file" => $name_lq_png,
"width" => $imageWidth,
"height" => $imageHeight,
"mime-type" => "image/jpeg"
);
break;
}
return $image_data;
}
$this не надо передавать по ссылке