wordpress アイキャッチ画像がない時に自動で代替画像を設置する方法

wordpress アイキャッチ画像がない時に自動で代替画像を設置する方法

こんばんは、taisonです。
台風もなんなく通過し、またいつもどおりの穏やかな日々に戻りました。
何もない日々こそ大事にしたいですね。

アイキャッチ画像も同じなんです。
何もない時にこそ真価を発揮する、そんな画像に注目してみてもいいじゃないですか。

まぁ、言葉遊びはこのへんに。
今日はアイキャッチ画像が設定されていない記事に、自動でアイキャッチ画像をつけてみます。
驚くほどカンタンにできますので、覚悟してください。

そもそもアイキャッチ画像があるとどんないい事がある?

まずアイキャッチ画像ってなんぞや?という方はwordpressの公式サイトよりご確認ください。

WordPressCodex日本版 投稿サムネイル

このアイキャッチ画像、記事に設定して一覧に表示されているとクリック率が上がると巷で騒がれています。まぁ、読まれるかどうかは結局コンテンツ内容次第になるわけですが、、、

どうせなら付ける方がいい!となるわけですが、時にはアイキャッチ画像をはめるまでもないなぁ。という記事に出くわすこともあるかもしれません。
記事をイメージさせる絶妙な画像が見つからないとかそんなんです。

しかし、他の記事にアイキャッチ画像が付いてるのに一つだけ外してしまうと、一覧表示したときにいびつな並びになってしまいますよね。

そのため、画像を設定しない記事には代替画像を自動で表示するコードを書いてしまいましょう。
手動で設定もできるけどなるべくラクしたいですしね!

アイキャッチ自動設置を実装するコード

まず今回はアクションフックという攻撃的な、、、いや、便利な機能を使って実装します。

WordPressCodex日本版 プラグインAPI

簡単に言うと、何かのきっかけ(記事の投稿とかユーザーの見る部分のどこかが変更されるなど)で作成したプログラムが発動する発火装置みたいなものです。

今回のケースだと、記事保存した時にアイキャッチ画像がなければ代替画像を設置するプログラムを発動する。といった感じです。
では、さっそく書いていきましょう。


add_action( 'save_post', 'save_default_thumbnail' );
function save_default_thumbnail( $post_id ) {
    $post_thumbnail = get_post_meta( $post_id, $key = '_thumbnail_id', $single = true );
    if ( !wp_is_post_revision( $post_id ) ) {
        if ( empty( $post_thumbnail ) ) {
            update_post_meta( $post_id, $meta_key = '_thumbnail_id', $meta_value = '画像id' );
        }
    }
}

コードみても分かりにくいですね、、、文章にしてみましょう。

記事を保存した時(save_post
この記事のサムネイルidを取得(get_post_meta…)
取得したid値が空かどうか確認して(empty…)
空だったら指定したidの画像(代替画像)を入れる(update_post_meta)

です。
このたった数行を入れてidを取得するだけで、もう設定完了です。簡単ですね。

画像idの確認方法

ちなみに画像idの確認方法ですが、記事のid確認方法とやり方は一緒です。

メディアから使いたい画像を確認すると、urlの最後尾に数字が並んでいると思います。
それが画像のidです。
同じ数字をさっきのコードの該当部分($meta_value)に入れて更新。画像なしの記事にアイキャッチ画像がついているか確認してみてください。

オリジナルな代替画像で独特な雰囲気をサイトに

代替画像がサイトロゴだったりサイトをイメージするものだと、それがあるだけでブランディングにもなります。

やり方は非常に簡単なので、何もないスペースも有効に活用しちゃいましょう!
それではまた!

wordpressカテゴリの最新記事