WordPressの投稿の投稿タイプを一括で変更する方法

お客さんのWordPressサイトで投稿タイプを一括で変更したいという事案が出てきましたのでちょいとやってみました。

何故投稿タイプを変えたくなったのか

現在サイトには”投稿”と”ブログ”が有るのですが、カスタム投稿で作ったブログへスマホから記事をアップする際にエラーが出るとの事。投稿よりも断然ブログへのアップが多いので不便との事。

スマホからはhpb padというアプリを使っているのですが、確かにカスタム投稿で作った”ブログ”に画像をあげようとするとエラーが出る。投稿の方には問題無く上がる・・・何故だ・・・不具合か。

WordPressのスマホアプリでも試してみたかったが、WordPressのアプリはオフィシャルにも関わらずカスタム投稿に対応していないのでNG。お願いです、そろそろ対応してくださいお願いします。

ブラウザからやってや〜と言ってみるもアプリの方が使いやすいようだ。まあそりゃそうだね。

というわけで、投稿とブログを入れ替えする運びとなった。

WordPressの投稿タイプを一括で変更する方法

投稿タイプを変更するプラグイン

こういう時はプラグインで変更だ〜と思っていたが、一括で投稿タイプを変更出来るものは見つからなかった。ちなみに1つ1つ変更するタイプのプラグインなら有ったので載せておきます。試してみたが簡単に出来ました。

Post Type Switcher

というわけでphpMyAdminからSQLで手動対応してみる

プラグインが無かったので、phpMyAdminからSQLで直接データベースを変更して対応してみよう。ちなみにこの方法はかなり無理やりなのでバックアップを取ってからくれぐれも自己責任でよろしゅう。今のとこ不具合は出ていないが、もしかしたら他にも変えないといけない箇所が有る・・・かもしれない。

20160104-1.jpg

WordPressのデータベースをいじるのはphpMyAdminからやるのが便利。有名どころのサーバーならほぼ付いているだろう。

phpMyAdminにログインしたらwp_postsテーブルを選択。このテーブルに投稿データがまとめて入っており、この中のpost_typeでなんの投稿なのか(postとかblogとか)という情報が有る。

試しにカスタム投稿(blog)だけを引っ張ってみるSQL。

これを入力欄に書いて実行したらblogだけが出てくると思う。次はblogのpost_typeをpostに変更するというSQL。

これで実行したら全て投稿(post)に移りました!

カテゴリーは設定しなおしが必要

まぁ変えたのは投稿タイプだけなので当然なのですが、カテゴリは手動で設定しなおす必要有り・・・。post_idを元にwp_term_relationshipsと結びついていたので、もっと複雑なSQLを作れば一括でいけそうですが、僕のレベルでは無理でした。まだまだだな。