【WordPress】投稿にデフォルトのアイキャッチ画像を設定する例

WordPressでサイトやブログを運営していると、投稿ページにデフォルトのアイキャッチ画像を設定したい場合があるかもしれません。
今回は、そのような場合に使用できるソースコードの例となります。
また、投稿ページにデフォルトのタイトル・本文を設定する例は、以下のリンク先を参考にしてみてください。
投稿ページにデフォルトのアイキャッチ画像を設定する例
以下は投稿ページにデフォルトのアイキャッチ画像を設定する例となり、functions.phpファイルに記述します。
例では、投稿ページを新規追加または、アイキャッチ画像が設定されていない投稿ページを更新・保存をすると、画像IDが126の画像をアイキャッチに追加します。
function my_default_thumbnail( $post_id ){
// 投稿タイプがpostで、アイキャッチ画像が設定されていない場合
if ( get_post_type( $post_id ) == 'post' && !has_post_thumbnail() ){
// アイキャッチ画像を追加
update_post_meta( $post_id, '_thumbnail_id', '126' );
}
}
add_action( 'save_post', 'my_default_thumbnail' );
ソースコードの説明
以下、例のソースコードの説明となります。
アクションフック|save_post
アクションフックのsave_postは、投稿の新規追加・更新・保存時などに変更を加えることができ、フックのコールバック関数の引数が一つの場合には、引数に投稿 IDが渡されます。
今回の例では、そのアクションフックのsave_postを使いデフォルトのアイキャッチ画像を設定しています。
アイキャッチ画像を設定するカスタムフィールド|_thumbnail_id
フックに登録した関数では、投稿タイプがpostでアイキャッチ画像が設定されていない場合に、アイキャッチ画像を設定するカスタムフィールドの値を更新することで、アイキャッチ画像を追加しています。
アイキャッチ画像は、カスタムフィールドのキー名が_thumbnail_idの値に、画像IDを指定し設定します。
そのため、例ではカスタムフィールドの値を更新するupdate_post_meta関数を使い、_thumbnail_idの値を画像ID126とし、デフォルトのアイキャッチを、画像IDが126の画像としています。
なお、update_post_meta関数については、以下のリンク先を参考にしてみてください。