web-dev-qa-db-ja.com

投稿から画像を取得して、投稿の抜粋前に表示する方法

私はWordPressテンプレートをカスタマイズしています、そして私は私のホームページの抜粋投稿ビジュアライゼーションに以下の動作を実装するでしょう:

投稿に画像(1つ以上)が含まれている場合は、投稿の最初の画像のサムネイルの先頭にホームページの投稿プレビューで表示してから、投稿の抜粋を表示します

現時点で私は、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
AndreaNobili

投稿の「おすすめ画像」の場合は、次のものを使用できます。

<?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
Tribalpixel