> Wordpress > Wordpressで記事のIDから記事内の一番目にある画像を取得する関数
Wordpressで記事のIDから記事内の一番目にある画像を取得する関数

Wordpressで記事のIDから記事内の一番目にある画像を取得する関数

Wordpressで記事のサムネイルに使用する画像としては、アイキャッチを使用するパターンが多いかと思います。
アイキャッチ以外にも、記事内に読み込まれている一番最初の画像を取得したい時があるかと思います。

記事IDを引数にして、アイキャッチがあった時はアイキャッチURLを取得し、記事に画像が入っていた場合は一番最初の画像URLを取得し、画像がなければnoimage用の画像URLを取得する関数は下記の通りです。

/**
 * 記事IDを引数に記事の画像を取得する関数
 * (アイキャッチURL>記事の最初の画像URL>noimage画像URL)
 *
 * @param int $id post_id.
 * @return string $first_img path to image.
 */
function catch_that_image( $id = null ) {
    global $post;
    if ( ! empty( $id ) ) {
        $post_data = get_post( $id );
    } else {
        $post_data = get_post( get_the_ID() );
    }
    $first_img = '';
    if ( has_post_thumbnail( $id ) ) {
        $first_img = get_the_post_thumbnail_url( $id, 'full' );
    } else {
        ob_start();
        ob_end_clean();
        if ( $post_data->post_content ) {
            $output    = preg_match_all( '/<img[^>]+?src=[\'"]([^\'"]+)[\'"][^>]*>/i', $post_data->post_content, $matches );
            $first_img = $matches[1][0];
        }
        if ( empty( $first_img ) ) {
            // Defines a default image.
            $first_img = get_template_directory_uri() . '/images/noimage.png';
        }
    }
    return $first_img;
}

参考にさせていただいたサイトはこちら↓です。

SINCE「WordPressで記事内の最初の画像をアイキャッチ代わりに使う方法」
https://since-inc.jp/blog/4791

上記をカスタマイズして、記事IDを引数として与えることで、指定した記事の画像を取得します。
引数になにも入っていない場合は、現在の記事の画像を取得します。

アイキャッチも画像も入っていない場合はテーマディレクトリ内のnoimage画像のURLを取得しています。

この記事が気に入ったらシェアしてください

関連記事

Wordpressのカスタム投稿タイプで一覧・詳細画面を作らない方法

Wordpressのプラグイン「AddToAny Share Buttons」で任意の場所にシェアボタンを設置する方法

Wordpressのプラグイン「AddToAny Share Buttons」で任意の場所にシェアボタンを設置する方法

Wordpress Popular Postsでの表示内容をテーマ内でカスタマイズする方法

Wordpress Popular Postsでの表示内容をテーマ内でカスタマイズする方法

Wordpressの投稿からカテゴリーやタグを削除する方法

Wordpressの投稿からカテゴリーやタグを削除する方法

Wordpressのget_terms()で特定のカスタム投稿タイプの公開記事のみcountの対象にする方法

Wordpressのget_terms()で特定のカスタム投稿タイプの公開記事のみcountの対象にする方法

WP_Query()のmeta_queryでAdvanced Custom Fieldsの「真 / 偽」の登録内容で絞りこむ方法

WP_Query()のmeta_queryでAdvanced Custom Fieldsの「真 / 偽」の登録内容で絞りこむ方法

Comment Form

コメント投稿はこちらをクリックしてください
  • コメントを入力してください。
登録フォーム
Name
Mailaddress
URL
Message
Postkey
(スパム対策に、投稿キー を半角で入力してください。)