Как извлечь изображение из сообщения и отобразить его перед отрывком сообщения? [дубликат]


Я настраиваю шаблон WordPress и хотел бы реализовать следующее поведение в визуализации отрывков сообщений на моей домашней странице:

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

На данный момент у меня есть следующий код, который внутри цикла WordPress показывает выдержки из всех сообщений на главной странице:

<!-- .entry-summary -->
        <?php else : ?>
        <div class="entry-content">
            <?php the_excerpt(); ?>
            <?php wp_link_pages( array( 'before' => '<div class="page-link"><span>' . __( 'Pages:', 'admired' ) . '</span>', 'after' => '</div>' ) ); ?>
        </div>

Как вы можете видеть, этот фрагмент кода показывает выдержку из сообщения.

Можно ли найти первое изображение в сообщении, поместить его в переменную и показать его внутри промежутка (или какого-либо другого HTML-тега) перед визуализацией отрывка?

Author: brasofilo, 2013-03-27

1 answers

Если это "Избранное изображение" вашего поста, вы можете использовать:

<?php 
// check if the post has a Post Thumbnail assigned to it.
if ( has_post_thumbnail() ) { the_post_thumbnail(); } 
?>

Проверка: функция the_post_thumbnail

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

function get_first_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];

  //Defines a default image
  if(empty($first_img)){ 
    $first_img = "/images/default.jpg";
  }
  return $first_img;
} 

Затем поместите <?php echo get_first_post_image(); ?>

 2
Author: Tribalpixel, 2013-03-27 13:29:00