WordPress のアイキャッチ設定状況を確認できる一覧を SQL で取得する方法

公開日:
WordPress のデータを SQL で抽出

全ての投稿にアイキャッチを付けているつもりでも、設定漏れや誤って画像を消してしまい、アイキャッチなしのエントリーが紛れていることはありませんか?

WordPress の場合、投稿一覧からアイキャッチの設定状況が分からないため、アイキャッチ設定有無を確認する何かいい方法は無いかと考えていたら、SQL で一気に取得すればいいんじゃないかと結論に至りました。

あまり需要のある内容ではありませんが、これで一気にデータ取得できるので参考情報として記事に残しておきます。

アイキャッチ設定有無を確認できる一覧を取得する

データベースに接続する

各レンタルサーバーには、データベースを操作するためのページ phpMyAdmin が用意されています。MySQL の標準機能で、そこから SQL を発行してデータ抽出を行います。

SQL とはデータベースに格納されているデータを抽出するためのプログラムです。詳しくなくても手順通りに行えば抽出できます。ただし記載以外のことを行うと、データを上書きするリスクがあるので、その点だけ要注意です。

まずは phpMyAdmin にアクセスして、ログインを行います。

各レンタルサーバーによってアクセスするためのメニュー構造は異なります。例えば XSERVER であればサーバーパネルから直接開けます。

phpMyAdmin の SQL 入力画面を開く

ログインしたら、左側のリストから対象のデータベースを選択します。すると画面上にデータが格納されているテーブル一覧が表示されるので、画面上部の [SQL] タブに進みます。

phpMyAdmin SQL 入力画面に遷移

MySQL のバージョンによって画面デザインが少し異なりますが、手順は同じです。

データ抽出用 SQL の実行

SQL の入力画面に次の SQL を貼り付けて実行します。

抽出用 SQL
select
  a.id 'ID',
  a.post_title 'タイトル',
  c.guid 'アイキャッチ URL'
from
  (select * from wp_posts
     where post_type in ('post','page')
       and post_status='publish') a
  left outer join wp_postmeta b
    on a.id = b.post_id and meta_key = '_thumbnail_id'
  left outer join wp_posts c
    on b.meta_value = c.id
order by a.id

入力エリア右下の [実行] ボタンで抽出が行われます。

抽出データの見方

抽出対象は投稿ページ・固定ページを含む全てのエントリーです。アイキャッチが設定されていると、一番右の [アイキャッチ URL] に値が設定されていて、未設定の場合は NULL で表示されます。

抽出結果の見方

この NULL になったデータに注目すれば、アイキャッチが未設定の投稿が分かる仕組みです。

抽出データをエクスポート

取得したデータは画面上で確認できますが、ファイルでも閲覧できるようにエクスポートを行います。既に対象データが分かる状態なので、この先は必要であれば行ってください。

処理結果の画面を下までスクロールして [エクスポート] を選択します。

phpMyAdmin エクスポート画面に移動

エクスポートの設定は、フォーマットの項目だけ CSV に変更して実行します。

エクスポート実行

これでエクスポート完了です。

CSV ファイルの文字化け対応

Excel がインストールされている場合、CSV ファイルをダブルクリックすればそのまま Excel で閲覧できます。しかし WordPress のエクスポートファイルをそのまま開こうとすると、文字化けしてしまいます。

そんな時は CSV ファイルをメモ帳で開き BOM 付きのファイルとして上書き保存すれば、Excel でも文字化けせずに表示できるようになります。BOM って何?という方は次のリンク先を参照ください。

以上、WordPress のアイキャッチ設定状況を確認できる一覧をデータベースから取得する方法でした。

\ この記事をシェアする /

このブログの運営者

NJ

Web系メインで従事していた元システムエンジニア。現在は個人事業主として独立。Webサイト運営における「困った問題」の解決方法をブログで発信。Web サイト運営、ポップデザインや動画制作など、パソコンでモノづくりをしている。