n-wp.ru — блог о WordPress
Как вывести первое изображение из поста, а если его нет, то показать случайно выбранную картинку-заглушку | n-wp.ru

Как вывести первое изображение из поста, а если его нет, то показать случайно выбранную картинку-заглушку

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

Как вывести первое изображение из поста, а если его нет, то показать случайно выбранную картинку-заглушкуДля того, чтобы выводить изображения из постов в анонсах (например, на главной странице), можно использовать встроенную функцию, создающую миниатюры. Это хороший, универсальный способ, который подходит к использованию в 95% блогов. Но всегда есть 5%, в которых он не очень удобен. Объясню, почему. Взять, например, блог, в котором картинки используются не в каждом посте. Тогда миниатюру в каждую запись придется добавлять вручную — уже лишняя трата времени. Или же взять, к примеру, блог, в котором используются очень большие картинки в постах, а в анонсах на главной странице отображаются маленькие миниатюры. Если создать маленькую миниатюру большой картинки, то теряется детализация, и иногда становится совершенно непонятно, что изображено на миниатюре. В таких блогах лучше использовать специальную функцию, которая выводит не созданную миниатюру, а первое изображение.

Для вывода первого изображения записи создадим специальную функцию, автоматически находящую изображение и выводящую код ссылки на него. Стоп — можете возразить вы — ну а если в посте нет изображения? Это резонное замечание, и специально для такого случая функция будет выводить заранее приготовленную нейтральную картинку-заглушку. Если таких постов будет много, то в них будет выводится одна и та же картинка-заглушка, что не очень красиво. Поэтому сделаем так, чтобы выводились каждый раз разные картинки-заглушки.

Создайте в корневой папке вашего блога папку images, и положите туда любое количество картинок. Чтобы картинки выглядели красиво, не забудьте, что они должны быть пропорциональными и одинакового размера (например 300 на 200). Переименуйте все картинки по порядку, например так: default-thumb-01.png, default-thumb-02.png, default-thumb-03.png, default-thumb-04.png, и так далее.

Откройте файл functions.php и добавьте в него код функции:

В том месте шаблона, где вы хотите вывести изображение из поста, используйте код:

Функция выведет картинку из поста без изменений. Эта картинка будет являтся одновременно и ссылкой на пост. Если же в посте нет картинок, то функция выведет одну из картинок-заглушек. Чем больше таких картинок-заглушек вы приготовите, тем меньше вероятность, что встретятся две одинаковые подряд. Резонно, что на ширину или высоту выводимой картинки дизайном блога накладываются ограничения, поэтому изменить картинку в размерах можно заранее, указав максимальную высоту или масимальную ширину:

Пример кода, выводящего картинку, пропорционально уменьшая ее до ширины в 300 точек:

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

tiaurus

Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

Комментировать

/* ]]> */