ウサヲブログ  HOME

ウェブ制作に関わる備忘録などを綴ります

このページの位置: HomeWordpress「アイキャッチ画像のaltを取得してif分の条件判定に使いたい」の記事

アイキャッチ画像のaltを取得してif分の条件判定に使いたい

wordpressロゴ

ウサヲです。

とある条件を使う必要が出てきた時に、タイトルの通りのことをしたかったのですが、ずいぶん時間がかかったので、これはやはりメモしておいた方がよかろうかと思いメモします。

やりたいこと

投稿にアイキャッチがある場合、そのalt属性の値を取得して、その値が「ダミー画像デース」だったらsingleページで出力しない。それ以外は出力する。

なんでそんなややこしいことがしたいのか

ウサヲが取り組んでいる今のサイトでは、基本的にアイキャッチがあることが普通であり、ないことはない、というくらいアイキャッチを使います。

というのも、サイドバーでプラグインを使ってサムネイルを表示する箇所があり、アイキャッチが存在しない場合には大変不恰好になってしまうからです。プラグインなのでその処理の中で自動的にアイキャッチを出力する仕組みになっており、そこの制御はできません。(最初からプラグインを使わず自力でやれよ、と思うのですが、ともかく、やらないのであります。)

で、アイキャッチ画像としてクレジットの都合上設定できない場合には、ダミーの画像を設定しています。でもそのダミーの画像をシングルページで表示したくないのです。でも、サイドバーでは表示したいのです。

ややこしいか?ややこしい、ウサヲもそう思います。

とにかくこうした

以下のソースコードで見事丸く収まりました。

  1. まず、サムネイルがある?って聞く。
  2. 次にサムネイルのIDを取得して、それを使ってaltの値を取得します。
  3. 最後にそのaltの値を判定し、必要に応じてサムネイルを出力します。
<?php if ( has_post_thumbnail() ){;
$thumbnailID = get_post_thumbnail_id( $postID );
$alt = get_post_meta($thumbnailID, '_wp_attachment_image_alt', true);
if ( $alt!='ダミー画像デース' ){; ?> 
    <p class="bodyImg"> <?php the_post_thumbnail(large); ?> </p>
<?php } }

ウサヲ、疲れました。

コメントを残す

日本語でお願いします。「テスト投稿」のような短い文は無視されます。

TOP