WordPress - アイキャッチ画像のURL取得 | Technolog.jp - ICTウェブマガジン

WordPress – アイキャッチ画像のURL取得

  • 2011/03/18
  • カテゴリー:CMS

WordPressには投稿単位でサムネイルを登録する「アイキャッチ画像」という機能が実装されています。登録した画像はテンプレートタグを用いてテーマや投稿内に表示することができるのですが、そのURLの取得となると途端に面倒になります。以下ではそのためのハックを記載します。

そもそもアイキャッチ画像のURLを取得する必要があるのかという見方もありますが、筆者の場合、Open Graph Protocolの「og:image」使用のためにこの問題に遭遇しました。以下ではその前提の下、解説していきますが、汎用的に使用することもできるので、必要に応じて参考にしてください。

ファンクションの定義

functions.php」を開き、以下のコードを追記・保存します。

1
2
3
4
5
6
// Get the featured image URL
function get_featured_image_url() {
    $image_id = get_post_thumbnail_id();
    $image_url = wp_get_attachment_image_src($image_id,'thumbnail', true);
    echo $image_url[0];
}

ダミー画像のアップロード

運用中のウェブサイトであれば、全ての投稿にアイキャッチ画像が登録されているわけではないので、ダミー画像を作成しておきます。どんなものでも構いませんが、筆者の場合は「noimage.gif」という画像を作成し、任意のディレクトリにアップロードしています。

ヘッダーへのテンプレートタグの記述

次に「header.php」にOpen Graph Protocolを記述します。

1
2
3
4
5
<?php if(has_post_thumbnail()) { ?>
<meta property="og:image" content="<?php get_featured_image_url(); ?>" />
<?php } else { ?>
<meta property="og:image" content="<?php bloginfo('template_url'); ?>/images/noimage.gif" />
<?php } ?>

条件タグを使用してアイキャッチ画像が登録された投稿についてはそのURLを取得し、登録がない投稿についてはダミー画像を読み込ませています。