[РЕШЕНО] Как записать функцию в плагин?
Ответ
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 не надо передавать по ссылке