• Решено Alexander Babaev

    (@babaevan)


    Здравствуйте, уважаемые форумчане!
    Возможно, вопрос не из того раздела, тогда, уважаемые модераторы, переместите его куда надо.

    Предыстория: мой хостинг не поддерживает какие-то библиотеки (их довольно много, поэтому писать все смысла нет; прошу не предлагать сменить хостинг, так как это невозможно!) и в итоге при загрузке не создаются обрезанные версии изображений. Я записи вывожу с помощью специального плагина и на главной странице получается 6 постов, у которых изображением заголовка стоят изображения шириной в 1200px+, которые пережимаются в 300px. Сами понимаете, что это очень влияет на время загрузки. Решили вручную обрезать изображения и заливать их, прикрепляя к посту с помощью postmeta «postimg» (несколько копий изображения в медиафайлах как-то не очень хорошо для нас). Но каждый раз при добавлении новости открывать FTP и загружать картинку не очень-то хорошая перспектива, вот и решили добавить в уже имеющийся мета-бокс нашей темы возможность загрузки файла при редактировании поста.

    Вопрос: как это правильно сделать?

    Попытался так:
    при создании метабокса:
    <input name="mcbsu_postimg_uploader" type="file" />
    при сохранении:

    //Загружаем файл
    if (isset($_POST['mcbsu_postimg_uploader'])) {
    $floadcontent = file_get_contents($_POST['mcbsu_postimg_uploader']);
    $postimgname = $_POST['mcbsu_postimg_uploader'];
    $upload = wp_upload_bits($postimgname, NULL, $floadcontent);
    if(!$upload['error']) {
    update_post_meta($post_id, 'mcbsu_postimg', $file);
    }
    }
Просмотр 15 ответов — с 1 по 15 (всего 31)
  • их довольно много, поэтому писать все смысла нет

    Для нормальной работы с изображениями нужен ImageMagick (предпочтительно) или GD.

    Вопрос: как это правильно сделать?

    Вы же запретили предлагать правильные решения (а правильно — настроить/сменить хостинг)

    мой хостинг не поддерживает какие-то библиотеки

    а вы в этом уверены?
    может просто надо где-то галочку в модулях php поставить?

    просто, честно говоря, сложно представить, чтобы в 2018 году был где-то хостинг без библиотек работы с графикой.

    Автор Alexander Babaev

    (@babaevan)

    а вы в этом уверены?

    Абсолютно. Например, ImageMagick не работает, вот такая вот GD:

    gd
    GD Support enabled
    GD Version bundled (2.1.0 compatible)
    GIF Read Support enabled
    GIF Create Support enabled
    PNG Support enabled
    libPNG Version 1.2.50
    WBMP Support enabled
    XBM Support enabled

    может просто надо где-то галочку в модулях php поставить?

    Доступа к настрорйкам php у меня нет.

    ну так GD есть — почему не режет?

    Модератор Yui

    (@fierevere)

    永子

    Для нормальной работы с изображениями нужен ImageMagick (предпочтительно) или GD.

    я бы не ставила тут или, т.к. если устанавливаются плагины для работы с изображениями, или тема имеет какие-то функции, то они могут не вызывать WP_Image_Editor (предоставляющий выбор 1. PHP-IMagick, 2. GD), а работать с PHP расширениями напрямую, а тут вариантов умеющих работать с Imagick меньше, многие работают только с GD. Т.е. GD требуется всегда.
    Да, сложно найти хостинг, на котором не было бы хотя бы GD.

    Для качества рекомендуется Imagick (PHP-IMagick), но это не обязательно

    Модератор Yui

    (@fierevere)

    永子

    Imagick не работает , но присутствует в списке phpinfo()?
    или его там нет?

    Автор Alexander Babaev

    (@babaevan)

    ну так GD есть — почему не режет?

    Спросите что-нибудь полегче)

    или его там нет?

    Его там нет.

    • Ответ изменён 6 лет назад пользователем Alexander Babaev.

    я бы не ставила тут или, т.к. если устанавливаются плагины для работы с изображениями, или тема имеет какие-то функции, то они могут не вызывать WP_Image_Editor (предоставляющий выбор 1. PHP-IMagick, 2. GD), а работать с PHP расширениями напрямую, а тут вариантов умеющих работать с Imagick меньше, многие работают только с GD. Т.е. GD требуется всегда.
    Да, сложно найти хостинг, на котором не было бы хотя бы GD.

    Сдаётся мне это неправильные плагины. И я встречал хостинги без GD, только с Imagick .

    Автор Alexander Babaev

    (@babaevan)

    Вообще говоря, можно ли сделать загрузку файла, минуя Медиафайлы?

    а тех. поддержку хостинга не хотите спросить, почему GD не работает?
    это будет в 100500 раз эффективнее, чем самому резать, оптимизировать и заливать картинки.

    Автор Alexander Babaev

    (@babaevan)

    а тех. поддержку хостинга не хотите спросить, почему GD не работает?
    это будет в 100500 раз эффективнее, чем самому резать, оптимизировать и заливать картинки.

    Я всё же думаю, что эффективней всё-таки резать картинки. Есть ли какой-нибудь способ заливать их?

    Я всё же думаю, что эффективней всё-таки резать картинки

    Неверно думаете.

    Есть ли какой-нибудь способ заливать их?

    Заливать картинки — да. А их миниатюры — нет. Нот нормального способа. Возможно просто потому, что никому в голову не приходило так морочить себе голову и использовать кривые хостинги.

    Автор Alexander Babaev

    (@babaevan)

    Заливать картинки — да.

    Где можно почитать, как это реализовать?

    https://wordpress.org/plugins/media-from-ftp/
    Но это Вам не поможет. При регистрации нарезаются миниатюры! На нормальном хостинге.

    Ваша хотелка сродни подкладыванию досок из багажника на каждую яму по ходу движения автомобиля. Вместо того чтобы заделать ямы или выбрать соседнюю дорогую.

    • Ответ изменён 6 лет назад пользователем SeVlad.
    Автор Alexander Babaev

    (@babaevan)

    Но это Вам не поможет.

    Это мне действительно не поможет, так как это совсем не то, что мне нужно!

    Мне нужно при сохранении записи сделать возможность загрузить файл в определённую подпапку и присвоить имя загруженного файла postmeta.

    Ваша хотелка сродни подкладыванию досок из багажника на каждую яму по ходу движения автомобиля. Вместо того чтобы заделать ямы или выбрать соседнюю дорогую.

    Только вот это может быть только одна дорога на всём белом свете.

    • Ответ изменён 6 лет назад пользователем Alexander Babaev.
Просмотр 15 ответов — с 1 по 15 (всего 31)
  • Тема «Загрузить файл в свою подпапку wp-content» закрыта для новых ответов.