目次
要約
WordPressはバージョン5から新エディタGutenberg
旧エディタ形式の記事を新エディタ形式に書き直す
旧記事のみをMySQLでピックアップする
バージョン5からGutenbergが適用
WordPressご利用の皆さんはメジャーアップデートが5になってからエディタが変わったことはよくご存じかと思います。
そう、新エディタのGutenberg(グーテンベルク) 。
私は当初、非常に使いにくいので元のエディタを利用できるプラグインも検討したほどです。
でもしばらく新エディタを使っているうちに慣れてきたのと、意外とアリかもしれないと思うようになり、今ではバリバリ活用しています。
ブロックを並び替える機能、コンテンツ構造は直感的に確認できるようになり便利になった と感じています。
最近はリライトも兼ねて旧エディタ記事を新エディタ形式に修正していたのですが、人気記事を優先的に修正していたので、期間的 (2018年12月ごろまではV4の旧エディタ) に旧記事を絞ることができなく なってしまいました。
新エディタで書いた記事は文字列「wp:heading」で検索すれば標準の検索機能で絞ることもできるんですが逆の検索はできない。
そこでSQLの勉強もかねて、新エディタでのHTMLの特徴(wp:headingの文字列)と、MySQLの管理ツールであるphpMyAdminを利用して記事の抽出を行う ことにします。
※管理ツールはDBを直接参照するのでご注意ください。自己責任でお願いします。
対象記事(旧エディタ作成)のピックアップ方法
phpMyAdminを開く
私はXserverを利用しているのでXserverの管理画面から開くことにします。
他のレンタルサーバを利用されている方も今なら大体管理画面から開けるかと思います。
対象DBを開く
「データベース」タブをクリックし、WordPressで利用しているデータベース名をクリックします。
データベース名はレンタルサーバで環境構築時に作ったものです。Xserverならさっきの画像にある「MySQL設定」を開くと確認できます。
SQL画面を開く
「SQL」タブをクリックします。
SQL文を書いて実行する
SQLサンプル
サンプルコードは下記の通りです。一部個人設定(wp_postsの部分)があるので修正が必要です。
SELECT
`ID`,
`post_date`,
`post_modified`,
`post_title`,
`post_content`
FROM
`wp_posts`
where
`post_type` = 'post'
AND `post_status` = 'publish'
AND `post_content` not like '%wp:heading%'
ORDER BY
`ID` DESC
説明
SELECT
`ID`,
`post_date`,
`post_modified`,
`post_title`,
`post_content`
FROM
`wp_posts`
wp_postsという記事のテーブルから、
ID post_date:投稿日 post_modified:更新日 post_title:タイトル post_content:内容
と言うフィールドを表示する記述です。
wp_postsの部分の”wp_”は初期設定時に決めたプレフィックスですので環境に合わせて変更 してください。phpMyAdminの「構造」タブか、wp-config.phpで確認 可能。
“wp_”と言うのは設定時変更していない場合の初期値です。通常初期値はセキュリティに問題があるので変更している(はず)。
where
`post_type` = 'post'
AND `post_status` = 'publish'
AND `post_content` not like '%wp:heading%'
こちらで表示する条件を絞っています。
`post_type` = ‘post’
投稿タイプをpost(ポスト)、つまり投稿。最新バージョンのみ表示させたいのでこうします。これをしないと修正前の記事(変更履歴)もピックアップされてしまいます。
AND `post_status` = ‘publish’
投稿状態をpublish(パブリッシュ)、つまり発行。ゴミ箱データや一時データはいらないので絞ります。
AND `post_content` not like ‘%wp:heading%’
今回のポイントになる部分です。
Gutenbergで作成した記事には”wp:heading”という文字を含んでいます (HTMLのコメントアウトで)。
よって検索からその文字を含んだ内容を除外してあげればよいのです。
これは記事を最新順に並びなおしているだけ。なくても大丈夫。
入力して実行
先ほどのサンプルを参考に入力し、「実行」ボタンをクリックしてください。
結果
実行すると結果が表示されました。
私の場合旧エディタで作成し、未修正の記事は46件あります。
ここまで出せれば後は出力するなり何なりとできますね。
普通にプラグインか何かでできるかもしれませんが今回はSQLで検索したお話でした。
コメント