
Очень часто в блогах используется вводная картинка для поста. Какая нибудь ассоциативная или привлекающая внимание. А у некоторых шаблонов главная страница сделана не в виде обычного блога, когда записи идут последовательно, а «портального» типа, когда в разных блоках могут показываться последние записи из разных категорий. И что бы автоматизировать этот процесс, нам необходимо взять первую картинку из поста и показать ее (иногда еще и изменить размер).
Так вот, большинство вариантов используют для этой цели пользовательские поля. Это хорошая идея, но вы должны знать, что с помощью простого PHP кода, вы можете добиться аналогичного результата и «выдернуть» первое изображение из записи, ну и вывести его где будет необходимо.
Первое, что нам необходимо сделать, так это добавить нужную функцию в наш файл functions.php, лежит в корне каталога с темой которую вы используете. (если такого нету, нужно его создать)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function catch_that_image() { global $post, $posts; $first_img = ''; ob_start(); ob_end_clean(); $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); // выдираем первый имагес $first_img = $matches [1] [0]; if(empty($first_img)){ //Если изображения в записи нету - будет использоваться стандартная картинка $first_img = "/images/default.jpg"; // путь к стандартной картинке } return $first_img; } |
Это все 🙂
Теперь, что бы вывести картинку, нужно просто вызвать нашу функцию, в основном цикле the_loop


4 Комментарии
Переводная статья? класс, побольше бы таких
Спасибо, пригодилось)
Почему то выводит только адрес картинки 🙁 Картинку не показывает(( как исправить, подскажите?
🙁