Вывод первой картинки поста в качестве миниатюры (WordPress)

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

Почему мне это нужно было? В одной из статей хотел вставить картинку размером 600×200 и чтобы она была и как миниатюра в анонсе. А в старых постах у меня выводились миниатюры размером 300×200 стандартным тегом WP и не хотелось все рушить и перезаливать для старых постов новые картинки с новыми размерами. А если не указывать картинку в качестве миниатюры стандартным способом, а просто вставить её в начало поста, то в полной статье все хорошо, а в краткой получается, что она не выводится.

Делаем следующее: открываем файл, в котором выводится превьюшка стандартным кодом, и меняем строчку:

<?php the_post_thumbnail(array( 200,200 )); ?>

<?php the_post_thumbnail(array( 200,200 )); ?>

* Она может немного отличаться параметрами в скобках.

На такой код:

<?php 
        // Если задана миниатюра, то выводится она, иначе в качестве превью будет первая картинка из поста
        if ( has_post_thumbnail() ) {
                the_post_thumbnail(array( 200,200 )); 
        }
        else 
        {
?>
        <img width="200" height="200" class="entry-thumb wp-post-image" src="<?php echo get_post_image(); ?>" alt="<?php the_title(); ?>" />
<?php } ?>

<?php // Если задана миниатюра, то выводится она, иначе в качестве превью будет первая картинка из поста if ( has_post_thumbnail() ) { the_post_thumbnail(array( 200,200 )); } else { ?> <img width=»200″ height=»200″ class=»entry-thumb wp-post-image» src=»<?php echo get_post_image(); ?>» alt=»<?php the_title(); ?>» /> <?php } ?>

Всё!

Оцените статью
Дневник Сеошника
Добавить комментарий

  1. Кирилл

    Сделал, как написано, но картинка не появляется. Ругается, что неизвестная функция «get_post_image»

    Ответить
    1. ARKSEO

      Не знаю почему у тебя ругается.

      Я на этом блоге так сделал и еще на одном сайте у себя, и все норм работает.

      Ответить