Получение и вывод первой картинки в wordpress

Доброе утро, уважаемые коллеги. Часто, при создании свой темы для блога или сайта, в шаблоне нужно получить первую (или не первую) картинку. Как это сделать, вы узнаете в этой записи.

Получение и вывод первой картинки в wordpress

Для того, чтобы получить первую картинку с записи wodpress, я использую следующую функцию:

function get_post_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)){ 
  	$img_dir = get_bloginfo('template_directory');
    $first_img = $img_dir . '/images/post-default.jpg';
  }
  return $first_img;
}

Особенности данной функции:

  1. Если картинки в посте нет, то она берется из папки images, а картинка называется — post-default.jpg. Вам следует самому положить картинку в эту папку.
  2. Изначально функция берет первую картинку, но если вы хотите использовать какую-то другую, то вам следует поменять индекс массива $matches. То есть, нужно менять этот код:
    $first_img = $matches [1] [0];
    
  3. Скрипт ищет картинку в посте с помощью регулярного выражения. Он работает только, если картинка не является ссылкой, то есть вариант:
    <a href="#"><img src="#" /></a>

    не будет работать.

Данную функцию необходимо скопировать в файл functions.php вашей темы. Для того чтобы использовать её, нужно в шаблоне прописать следующий код:

<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><img src="<?php echo get_post_image(); ?>" alt="<?php the_title(); ?>" /></a>

Этот код выведет первую картинку с поста с ссылкой на него.

Я надеюсь, что помог вам получить первую картинку записи wordpress. Если у вас что-то не получилось, то пишите в комментариях о своих проблемах, а я вам обязательно помогу.

Категории: wordpress

Метки: