Про атачменты, миниатюры и мета поля

В плагине для ускорения работы с изображениями, загрузками и мета полями используется All Inclusive который я выделил в отдельный плагин описание метода.
Для того, чтобы задействовать эту функцию достаточно включить опцию в настройках плагина “Применять шаблоны постов”, устанавливать All Inclusive не нужно он уже включен в ads-wordpress в виде функции фильтра ads_addImgMeta. Для сравнения WP функция the_post_thumbnail для получения 1 миниатюры создает 2 SQL запроса то есть если на странице 10 записей это 10*2 = 20 sql !? Мой же метод дает всего 2 дополнительных SQL но помимо картинок добавляет все мета поля для всех записей.
Настоятельно рекомендую пользоваться моим методом это сэкономит вам и время и ресурсы сервера.
Итак как ним воспользоваться привожу примеры.
Во первых советую в теле главного цикла советую распечатать переменную $post сразу после старта главного цикла:

вставляем заменив пре на pre :)

Итак думаю всем хорошо видно, что мета поля попадают в массив $post->meta , а атачменты $post->files
Вот например, чтобы проверить и распечатать номер телефона можно сделать так

Проверить и вывести миниатюру для первой картинки со ссылкой на полную картинку если она есть, если нет вывести заглушку.

Проверить есть ли какая-нибудь картинка в объявлении и вывести ее миниатюру со ссылкой на само объявление:

Можно комбинировать со стандартным выводом миниатюр the_post_thumbnail

Если загруженный файл не картинка а архив или что-то еще пользуем параметр guid или лучше attachment_url. Для примера обработаем все загруженные файлы и выведем для картинок миниатюры а для других файлов ссылки на закачку

В этом примере мы сначала с помощью регулярного выражения определяем тип файла по полю post_mime_type если он начинается с image/ значит это картинка и мы печатаем миниатюру если нет выводим ссылку используя параметр attachment_url.

Наверное здесь самым сложным будет не запутаться где массив а где свойства объекта еще раз повторю
Доступ к мета полям записи $post->meta['имя поля']
К файлам
$post->files[0]->attachment_url прямая ссылка
$post->files[0]->guid первый файл параметр guid тоже самое прямая ссылка

$post->files[1]->thumbnail второй файл миниатюра
$post->files[2]->medium третий файл средняя миниатюра
$post->files[3]->full третий файл полная картинка

Начиная с версии 3.0.17 добавил создание иконок для файлов типа архивы, exe, документы и т.д.
Иконки находятся в любом из полей thumbnail | medium | full везде одинаковые.
можно немного переписать предыдущий пример добавить вывод иконок вместо текста

И еще напомню есть функция ads_gallery

Комментарии 13 к “Про атачменты, миниатюры и мета поля”

  1. Скажите пожалуйста, я поставила галочку применять шаблоны постов, но я не поняла как использовать ваши примеры применительно к моей теме, помогает ли в данном случае галочка применять шаблоны постов – сэкономить время и ресурсы сервера?
    и еще, при установки данной галочки у меня неправильно отображается сайдбар, он почему то выводится внизу объявлениия при его просмотре, Подскажите пожалуйста где можно изменить ширину объявления? сделать её аналогичной записям из темы?

  2. Элан:

    Подскажите в каком файле это все нужно делать

  3. Татьяна:

    Здравствуйте, установила ваш плагин, все объявления попадают в одну категорию, назовем ее X. Чтобы получить список объявлений, была создана страница (для нее создан шаблон adv.php), которая отображает объявления одной этой категории X. При просмотре страницы не видны миниатюры (((, хотя если смотреть все объявления категории X они показываются…Помогите, пожалуйста, понять, в какой файл надо добавить отображение миниатюр. Спасибо.

  4. alin:

    как прописать в шаблоне следущее
    – если миниатюра не задана, то анонс (на главной) не выводить вообще

  5. Игорб:

    Здравствуйте! Как мне сделать так, чтобы при создании поста первая картинка если она есть становилась миниатюрой записи? В файле post default template написал следующее:

    files)): $img = array_shift($post->files);?>
    ID)?>

    Но ничего не вышло =(

  6. Игорб:

    files)): $img = array_shift($post->files);?>
    ID)?>

  7. Игорб:

  8. Игорб:

    В поле сайт написал

    • admin:

      в админке плагина есть опция номер картинки которую сделать миниатюрой это если надо для совместимости с различными темами

      • Dmitry:

        У меня тоже не выходит вывести миниатюру. Не могли бы сделать подробный мануал на эту тему?

  9. Артем:

    Здравствуйте.
    Вывод миниатюр с помощью ($post->files[0]->thumbnail) не работает, если для фильтрации постов используется query_posts или WP_Query.

    При этом способе при проверке print_r($post); очень много параметров не выводится.

    Подскажите как быть?

    Хотелось бы вашим способом вывести, а то альтернативный вывод который сейчас используется генерит 30 лишних запросов к базе.

    Спасибо.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url=""> [php]…[/php] [html]…[/html] [css]…[/css] [text]…[/text] [code]…[/code]