[WordPress]アイキャッチ画像が未指定の投稿をSQLで抽出する

カテゴリ: 未分類 | タグ:

WordPressでは各投稿に対してアイキャッチ画像を指定することができます。アイキャッチ画像を指定しておくと、WordPressのテーマによっては記事の一覧や個別記事のトップに画像が表示されるため、ユーザの目を引くことができます。

ですが、アイキャッチ画像の登録を行っていると、つい、登録漏れをしてしまう場合がありますよね。

そこで今回は、アイキャッチ画像が未指定の投稿の一覧を、SQLで抽出する方法を説明します。

テーブルの構造

アイキャッチ画像は、wp_postmetaテーブルにmeta_key='_thumbnail_id'のレコードとして登録されています。post_id列が、wp_posts.idとの紐づけキーです

SELECT  meta_id, post_id
FROM    wp_postmeta
WHERE   meta_key = '_thumbnail_id';

また、公開済み(publish)もしくは予約投稿(future)している記事(post)の一覧は、下記のSQLで抽出できます。

SELECT      id, post_date, post_title, post_status, post_modified
FROM        wp_posts
WHERE       post_type = 'post'
AND         post_status in ('publish', 'future')
ORDER BY    post_date desc

アイキャッチ画像が未指定の投稿を抽出する

今回調べたいものは、投稿されているが、アイキャッチがない(not exists)データの一覧なので、下記のSQLで抽出が可能です。

SELECT      id, post_date, post_title, post_status, post_modified
FROM        wp_posts
WHERE       post_type = 'post'
AND         post_status in ('publish', 'future')
AND         not exists ( 
                        SELECT  * 
                        FROM    wp_postmeta 
                        WHERE   wp_postmeta.meta_key = '_thumbnail_id'
                        AND     wp_postmeta.post_id  = wp_posts.id )
ORDER BY    post_date desc

SQLで一覧が抽出できるだけでは、あまり使い道が無いと思われるかもしれませんが、非対話で作業漏れリストが作成できるので、ChatworkやSlackと連携させてアイキャッチの登録漏れが有ったら通知させるなど、自動化を行っておくとミスの防止に役立ちます。

こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。