Как извлечь изображение из сообщения и отобразить его перед отрывком сообщения? [дубликат]
Я настраиваю шаблон 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-тега) перед визуализацией отрывка?
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(); ?>