Pods: Ошибка с обработчиками миниатюр PDF-файлов WP 4.7.1 {@_src} проходит через pods_image_url добавляет суффикс изображения

Созданный на 9 мар. 2017  ·  26Комментарии  ·  Источник: pods-framework/pods

У меня есть установка Pod с полем File / Image / Video.

Когда пользователь добавляет контент в CPT и загружает PDF-файл в это поле, сгенерированный URL-адрес показывает расширение .jpg для файла вместо .PDF (таким образом, при нажатии отображается миниатюра jpg в браузере, а не ссылка в PDF)

Пример: файл, который я хочу отобразить,
DMB-170119_17-000154-01-08.pdf

но сгенерированный URL заканчивается на
DMB-170119_17-000154-01-08-pdf.jpg

Это происходит только с PDF-файлами, которые были загружены в WP 4.7, где был создан эскиз. PDF-файлы, загруженные до версии 4.7 (которые все еще имеют общий серый значок WP для файла PDF), имеют правильное расширение файла .pdf в URL-адресе.

TemplateMagic Tags Reproduced Bug

Все 26 Комментарий

Забыл скриншоты. Вот мои настройки поля Pod, шаблон Pod и некоторые результаты.

voila_capture 2017-03-08_05-52-35_pm2
voila_capture 2017-03-08_05-53-35_pm
voila_capture 2017-03-08_05-59-21_pm

Похоже, нам нужен лучший обработчик для ссылок на файлы вложений, не являющихся изображениями.

https://github.com/pods-framework/pods/blob/2.x/classes/Pods.php#L1452

Прямо сейчас _src и _src.{size} проходят через функцию pods_image_url() .

Я не хочу быть вредителем, просто интересно, есть ли в этом какие-то движения. Я сам не разработчик плагинов, меня просто направили сюда с форумов WP, чтобы привлечь к нему внимание.

Никакого прогресса в решении этой проблемы нет, мы много работали над подготовкой Pods 2.7 к бета-версии. Я добавлю это в свой список, чтобы вернуться к нему, когда у меня появится свободная минута в ближайшие дни.

@portlandian, вы могли бы использовать https://codex.wordpress.org/Function_Reference/wp_get_attachment_url против него, то есть:

{@test_result_pdf.ID,wp_get_attachment_url}

@portlandian
Просто интересно, почему вы просто не используете {@test_result_pdf} ?
Это возвращает URL-адрес PDF, когда я тестирую его здесь. Нет необходимости добавлять ._src или что-то еще.

Такие термины, как full или large относятся ко всем типам изображений, они показаны только потому, что это общее поле файла Pods. Они вам не нужны для типов полей, кроме изображений.

@ sc0ttkclark
Спасибо за своевременный ответ, с нетерпением жду 2.7

@jimtrue
Спасибо за обходной путь. Я не знал об этом. К счастью, мне не понадобится с тех пор ...

@JoryHogeveen
Только потому, что я не знал, что это сработает. Я ссылаюсь исключительно на http://pods.io/docs/build/using-magic-tags/ всякий раз, когда использую шаблоны, и я никогда не видел этого в разделе о тегах для получения URL-адресов файлов. Если он есть, и я его пропустил, это плохо, но, возможно, обращение к файлам без изображений в этом разделе может быть хорошей идеей. Я изменил свой шаблон, чтобы использовать этот тег, и теперь он работает. Проблема решена.

Вы молодцы!

@portlandian Рад слышать, что у вас все заработало!

возможно, хорошей идеей будет обращение к файлам без изображений в этом разделе.

@jimtrue Может быть, действительно хорошая идея! :)

Хорошая мысль, но да, можно подумать, что @_src получит просто URL-адрес файла. В основном, не используя ни то, ни другое, просто используя сам тег для файла, вы получаете «вывод файла» как обычно. Я не уверен, что это сработало бы, если бы у вас было несколько файлов и вам нужно было [каждый файл_образа] [/ каждый] через них, потому что в этот момент нет «тега» для вызова URL, кроме {@_src}, так что нам все еще нужно адресовать и исправлять этот вывод. Это все еще ошибка.

В частности, из заметок Скотта:
Похоже, нам нужен лучший обработчик для ссылок на файлы вложений, не являющихся изображениями.

https://github.com/pods-framework/pods/blob/2.x/classes/Pods.php#L1452

Прямо сейчас _src и _src. {Size} проходят через функцию pods_image_url ().

@jimtrue
Очень хорошее замечание о каждой петле. # 4111 исправляет это.

@ sc0ttkclark Примечание: я сделал пиар против 2.x.

Ах да, @jimtrue .
Комментарий в PR (может быть что-то для документации)

При использовании шорткодов с вложениями PDF ._src возвращает изображение, начиная с WP 4.7.
С этим исправлением он вернет URL-адрес PDF.
Получение изображений, сгенерированных в формате PDF (WP 4.7), по-прежнему возможно с использованием ._src.image_size или ._img.

Принято к сведению!! Я добавлю их как в старые, так и в новые документы

Это исправлено в # 4111.

@JoryHogeveen @pglewis К сожалению, это все еще не работает. Я могу подтвердить, что {@_src} по-прежнему предоставляет ссылку на восстановленные эскизы для PDF-файлов.

Просмотрите беседу в этом тикете по адресу :

Похоже, это связано с хостом, создающим эскизы PDF-файлов. My Local от Flywheel этого не делал, поэтому он правильно связывал файлы PDF, но в WPEngine (который генерирует эскизы) тег {@_src} указывает _ только_ на эскиз изображения, а не на PDF. Очень назойливый.

@ brian-milnes предоставил очень хороший обходной путь, который позволяет получить правильный PDF-файл, так что, возможно, проблема в нашем обработчике для _img и _src:

Мы сделали обходной путь, используя
{<strong i="14">@ID</strong>,wp_get_attachment_url}

Если это вещь, связанная с окружающей средой, мы должны сначала создать аналогичную среду для воспроизведения.
Я знаю, например, что у WP Engine есть собственный плагин, который необходимо использовать.
Можем ли мы составить для этого список?

@JoryHogeveen Я думаю, проблема может быть в том, что мы все еще прорабатываем обработчик 'image' для {@_src}; Я не уверен, почему WordPress отдает предпочтение просмотру эскизов для PDF-файла самому PDF-файлу, но, возможно, это один из тех случаев, когда вместо этого нам нужен тег {@_file}, если {@_src} маршрутизируется через pods_image_url. Нам нужен способ перенаправить их на get_attachment_url.

Я умею составлять список, просто не знаю, есть ли смысл создавать новый тег только для файловых вложений (потому что я предполагаю, что мы столкнемся с этим и с другими файлами) или если нам нужно сделать _src {@_src} умнее.

Мое чутье: {@_img}, _img и любой _src.size должны возвращать эскизы изображений. _src всегда должен возвращать URL-адрес файла.

@ sc0ttkclark Мысли?

Да, и в тестовой среде, да, у нас есть один с themer.pods.io, или мы можем развернуть еще один на нашем хосте pods.io WPEngine, если это поможет @JoryHogeveen

Теперь правильная ссылка # 4964 - тоже хороший пример!

гул, похоже, ни {@_src}, ни {@permalink} не работают в [each]: /

@quasel Предоставьте пример вашего шаблона? Я делаю это все время, и сейчас у меня есть несколько, которые отлично работают.

Просто чтобы подтвердить, обработчики изображений изменились в последних нескольких версиях. Это активная проблема?
@quasel У вас есть быстрый тест для проверки?

Просто чтобы подтвердить, обработчики изображений изменились в последних нескольких версиях. Это активная проблема?
@quasel У вас есть быстрый тест для проверки?

Это все еще проблема с 2.7.22, я обновил свой код шаблона / w временное решение, но он все еще пытается связать эскизы для PDF-файлов.

но он все еще пытается связать эскизы для PDF-файлов.

@zushiba Что вы имеете в виду под "попыткой"? Можете ли вы поделиться случаем использования, который будет неправильным выводом?

но он все еще пытается связать эскизы для PDF-файлов.

@zushiba Что вы имеете в виду под "попыткой"? Можете ли вы поделиться случаем использования, который будет неправильным выводом?
У меня есть поле для загрузки нескольких файлов, оно используется моими пользователями для загрузки PDF-документов, которые затем отображаются на странице с помощью следующего шаблона.

<h1>{@post_title}</h1>
<ul>
[if form_files]
[each form_files]
<li><a href="{@_src}">{@post_title}</a></li>
[/each]
[/if]
</ul>

После загрузки 2 PDF-файлов сегодня один из моих пользователей обнаружил, что при загрузке их PDF-файла полученная ссылка на странице перешла к миниатюре PDF-файла .jpg, а не к фактическому PDF-файлу. Мне удалось подтвердить, что PDF-файлы были загружены на сервер, и в интерфейсе панели управления для элемента модуля он ссылался на нужный файл, но сама ссылка была на миниатюру jpg.

Проблема исправлена ​​в № 5854.
Если пользователи захотят протестировать этот патч, это будет здорово!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги