如何从帖子中检索图像并在摘录帖子之前显示它?

时间:2013-03-27 作者:AndreaNobili

我正在自定义WordPress模板,我将在主页中的摘录帖子可视化中实现以下行为:

If a post contains images (one or more), in the homepage post preview show at the begining a thumbnail of the first image that is in the post, then show the excerpt of the post.

目前,我有以下代码,在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>
正如您所看到的,这个代码片段显示了一篇文章的摘录。

在摘录可视化之前,是否可以在帖子中找到第一个图像,将其放入变量并在span(或其他一些HTML标记)中显示?

1 个回复
最合适的回答,由SO网友:Tribalpixel 整理而成

如果是您帖子的“特色图片”,您可以使用:

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

否则,如果你想在帖子中获得第一张图片,你可以使用这样的东西:

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(); ?>

结束

相关推荐

Loop being strainge

因此,我拼凑了一个函数,它可以执行以下操作:protected function _query_post($query){ $original = $this->_wp_query; $wp_query = new WP_Query($query); if($wp_query->have_posts()){ while($wp_query->have_posts()){ $w