SANGOからSWELLに完全移行できていないこまおです!
まさにリライト中なのですが、descriptionがSWELLでは表示されずに苦戦しています。検索してもコレ!というのが無いんです…
表示させる方法は色々と出てくるのですが、実際にできる方法は限られていました。今回はSANGOからSWELLへdescriptionを一括移行した唯一?の方法をお伝えしていきます。
- SQLでデータベース操作して情報更新する流れ
- プラグインを使わずdescriptionを一括移行する方法
プラグインを利用しないため(利用停止中)サーバー上のデータベースを取り扱う少し高度な内容となっています。
また一括移行ができなかった方法も忘備録として記載しています。ネットではやり方・方法が色々とありますが、最終的に自分で判断して、状況に応じて進めなければいけません。ぜひ参考にしてください。
descriptionを一括移行する唯一の方法はSQL
WordPressテーマをSANGOからSWELLに切り替えたばかりで、過去の記事をSWELL用にリライト中でしたが、これまた大変。。。SEO的にも重要なdescriptionを一括移行したい私は下記のような状況&心境でした。
- いつまでもSWELLの乗り換えサポート用プラグインに頼りたくない
- SWELLの管理画面からSANGOのdescriptionが見えない!?
- descriptionのコピペは絶対に嫌!一括移行しかない
- プラグインで一括移行できるようだけどプラグインが利用停止
- 残った方法はSQLでデータベース操作しかない!?
もうデータベースを操作して一括移行しかない…
結論として4のデータベースの情報(WordPressのphpAadmin)をSQLで操作して一括移行していくことに決めました。
SQLは、関係データベース管理システム において、データの操作や定義を行うためのデータベース言語、ドメイン固有言語である。プログラミングにおいてデータベースへのアクセスのために、他のプログラミング言語と併用される。
ウィキベディア
いきなりデータベースやSQLの専門用語を使ってますが、WordPress中級者レベルの知識が必要です。ちょっと何を言っているかわからない!という人はここで辞めた方が無難かもしれません。
要はデータベースにある情報をSQLというプログラムで操作して、一括移行していくということです。
データベースを取り扱うため難易度が高く、危険性も増します。万が一のことを考慮して、実施する前には必ずバックアップをとって進めてください。
危険視していますが慣れてしまえば(この慣れが一番怖い)かなり簡単で楽ちんに一括移行が可能になります。
そうそうSQLを使うことも無いでしょうけれど
データベースのdescriptionをSQLで一括移行する流れ
descriptionをSQLで一括移行する流れと方法を説明していきます。
サーバーのphpMyAdminにログインします。WordPressインストール時の設定内容(アカウント)が必要です。
当サイトはエックスサーバーを利用しています。エックスサーバー利用者は下記を読んでからお進みください。
ログインできない!アカウントを忘れてしまった!という場合でも大丈夫。こちらの記事が参考になります。
データベース名は大事です。複数運用している場合、間違えたら洒落になりません。ここはしっかり確認していきましょう。
わたしはアカウト情報をすっかり忘れてました(汗)このログインが一番しんどかったかも
こちらがphpMyAdminの画面です。ここまで来たらログイン成功!
下記の基本となるSQLのコード`meta_key`部分を修正していきます。テキストエディターを利用ください。
UPDATE `wp_postmeta` SET `meta_key` = '移行先のキー名' WHERE `meta_key` = '移行元のキー名';
これはデータベースに格納されている情報を更新する命令文です。①移行元のキー(SANGOのdescription)から②移行先のキー(SWELLのdescription)にアップデート(更新)してください!という内容。
くれぐれも移行先・移行元のキー名(meta_key)を間違えないようにしてください。
メモ帳等にコピペして正しく修正していきます。どのように移行先・移行元のキー名(meta_key)を修正するかは下記参照。
\ 内部リンクです /
修正したSQLコードに間違いがないか再度確認したら、次はいよいよデータベースで実行します。
ログインしているデータベースの右側にあるタブ「クリエを実行する」にSQLコードをコピペして、実行ボタンをクリック。
実際に投稿記事のSEO SIMPLE PACKのメタディスクリプション部分に、SANGOで入力してきたdescription情報がきちんと入力されているか確認しましょう。
そもそもdescriptionを入力していない記事は空白のままです!
descriptionを一括移行する流れは以上です。最初に実施する場合の難易度は高いですが、失敗してもやり直せば良いんです(苦笑)そのうちデータベースやSQL構文なんて怖くなくなります。
もちろんバックアップしていることが前提ですよ!
次は一番のポイントである、SANGOからSWELLにdescriptionを一括移行するためのSQLコードの実例を説明していきます。
実例:SANGOからSWELLにdescriptionを一括移行するSQLコード
コツというほどでは無いかもしれませんw 移行先と移行元の2つのキー名がわかれば楽勝。それだけ修正すればSQLコードが完成します。基本の文型はこちらです。
UPDATE `wp_postmeta` SET `meta_key` = '移行先のキー名' WHERE `meta_key` = '移行元のキー名';
移行先はSWELL、移行元はSANGOなので、SWELLとSANGOのキー名がわかればOKです。
参考:SWELLのメタディスクリプションを一括移行するコードについて
使用するコード(update)はデータの更新を行うためのSQL文です。
テーマを変更しても、移行元のテーマのメタディスクリプション等のSEO設定の情報はデータベースに残っているので、それを引き出して、移行先の設定エリアに移行します。
コードは以下のような形になっています。
UPDATE `wp_postmeta` SET `meta_key` = '移行先のキー名' WHERE `meta_key` = '移行元のキー名';
メタディスクリプションやキーワードは、wp_postmetaというテーブル内に入っています。
上記のSQLコードの説明はツッチーさんのブログを参考にさせていただいております。次にそれぞれのキー名(meta_key)を説明していきます。descriptionだけでなく、titleやkeywordも併記しておきます。
①SWELLとSANGOのキー名(meta_key)
下記テーブル内容がそれぞれのキー名(meta_key)です。SANGOのキーワードは実際に入力していなかったため、私の利用しているサイトのデータベースに記載がありませんでした。
メタ属性 | 【移行先】SWELL | 【移行元】SANGO |
---|---|---|
タイトル | ssp_meta_title | sng_title |
ディスクリプション | ssp_meta_description | sng_meta_description |
キーワード | ssp_meta_keyword | ー |
今回はディスクリプションがメインですが、タイトルやキーワードでも一括移行ができるということになります。
データベースやプログラムの知識はWordPressサイト運営者にとっては必要な知識なのかもしれません。勉強しないと・・・
②実際のSQLコード:SANGOからSWELLへdescription一括移行用
下記コードをデータベースで実行すれば、descriptionが一括移行できるはずです。
UPDATE `wp_postmeta` SET `meta_key` = 'ssp_meta_description' WHERE `meta_key` = 'sng_meta_description';
WordPressのテーマが違ってもキー名(meta_key)がわかれば応用ができますね!
いよいよ次は完成したSQLコードを利用して、データベース上で一括移行していこうと思います。
補足:他にもあったdescriptionのキー名(meta_key)
このYoast SEOというプラグインでdescriptionを書いていた時期がありました。しかもかなり前の頃なのですっかり忘れていましたが、そのキー名(meta_key)を利用していた記事のdescriptionは当たり前に空白となっていました。
そんなことってあるのですね。データベース恐るべし。。。
SWELLのSQLコード同様に作成して一括移行しました。Yoast SEOからSWELLへのdescription一括移行のSQLはこちらになります。
UPDATE `wp_postmeta` SET `meta_key` = 'ssp_meta_description' WHERE `meta_key` = '_yoast_wpseo_metadesc';
実践:当サイトのdescription情報を一括移行してみた
さぁどうなることやら(汗)不安しかありませんが、自作のSQLコードでデータベース操作してみました!
phpMyAdminにログイン
データベースを選択してSQLタブをクリック
SQLタブの下にある空白にSQLコードをコピペ
SQLコードをコピペしたら実行ボタンをクリック
更新(変更)が完了
WordPressの投稿記事(管理画面)からdescriptionを確認
初期のdescription内容で恥ずかしいためボカシをいれていますm( _ _ )m
phpMyAdminからmeta情報を確認してみよう
お疲れ様でした。実は私も初めてデータベースを操作しました。意外と簡単だったな〜というのが感想ですw ここまで来たら、ついでに更新情報をデータベースから確認していきましょう。
phpMyAdminというデータベース操作ができたら、おまけ感覚で出来ちゃいます。
- meta情報をCSVでダウンロード
- Googleスプレッドシートで確認
大きく分けるとこの2点です。スクショで細かく説明していきます。
CSV(comma-separated values)とは、テキストデータをいくつかのフィールドに分け、区切り文字であるカンマ「, 」で区切ったデータ形式。拡張子は .csv
ウィキベディア
①meta情報をCSVでダウンロード
phpMyAdminからデータベースにログインします。左カラムのデータベースを選択し、文頭にあるプラス(+)マーク
をクリックしてください。そうするとデータベース内にある各テーブルが展開されます。
データベースのテーブル「wp_postmeta」を選択
展開されたテーブルの中にあるwp_postmetaを選択して、右画面の上にある「エクスポート」タブをクリックしてます。
この各テーブルには「wp_posts」などの「wp_postmeta」に非常に似たテーブル名があるので要注意。またデータベース全体をエクスポートすると容量が大きくなるので、かならず「wp_postmeta」のみを選択してください。
エクスポート時の容量は17,000行あり、約5MBくらいでした。
テーブル:wp_postmetaが選択されていることを確認しつつ、エクスポート形式は簡易(最小限のオプションだけ表示)をクリック。
フォーマットは「CSV」を選択
エンコーディングは「SJIS」にチェックを入れて、実行ボタンをクリックしてください。
CSVを保存
このサイトは未公開も含めて300記事ほどのサイトです。ただエクスポートしたCSVデータの桁数は17,000行もありました。meta情報だけでもすごい量ですね(汗)
Excelが使える方はそのままCSVデータを開いて確認してください。次はExcelではないGoogleのWebサービス「スプレッドシート」を利用した使い方です。
②Googleスプレッドシートで確認
データベースのCSVデータをGoogleスプレッドシートで確認する方法を説明します。Googleアカウントがあれば、Chromeなどのブラウザーから利用可能です。WindowsやMacだけでなく、スマートフォンからでもOKな便利ツール。
ファイルを開くからアップロードを選択
スプレッドシートの最初の画面右上にあるフォルダアイコンをクリックしてください。
CSVデータをアップロード
データベースからエクスポートしたCSVデータをアップロードしていきます。
CSVを保存
データが開くまでに少し時間がかかります。データベース全体をエクスポートした場合だと、パソコンが固まるほどの大容量になるため要注意。かならずテーブル名:wp_postmetaのみをエクスポートしたCSVデータにしてください。
さきほどエクスポートしたファイル名と同じタイトルになります。
次に項目名を挿入して、内容がわかるようにしていきます。
一番上に一行挿入して項目名を入力
操作的な説明は省きますが、1行目を選択&右クリックして一行挿入します。
A・B・C・D列の項目名は下記となります。このCSVデータは、A〜Dまでの4列のみです。
列 | meta項目 | 説明 |
---|---|---|
A | meta_id | メタID:使わないのでスルー |
B | post_id | ポストID:投稿記事のID |
C | meta_key | ここがキー名(例:ssp_meta_description) |
D | meta_value | meta情報の内容(実際のdescription等のmeta情報) |
データ数が多い(私の場合は17,000行以上)ため、上記のmeta項目からキー名(meta_key)でフィルターをかけていきます。
\ 内部リンクです /
一番上の行にフィルターを作成する
C列のmeta_keyを選択して右クリックすると、ポップアップが出てきます。下にある「フィルタを作成」を選択。
フィルタのマークが出現
CSVを保存
フィルタマークをクリックするとポップアップ。クリアをクリックして、すべての選択を外します。
すぐ下にあるフィルタウィンドウに、抽出したいキーワード(例:ssp_meta_descriptionの一部でもOK)を入力。下記のようなサジェスト(提案)ワードが出てきます。
フィルタ(抽出)したいキーワードを選択
選択するとチェックマークがつきますので、次にOKをクリック
選択したmeta_keyがフィルタ(抽出)された
今まで入っていなかったssp_meta_descriptionにディスクリプション情報が入っていました。
これでSQLコードを利用したデータベース操作が成功したことがわかりました!
もちろんWordPressの投稿一覧画面から、SEO SIMPLE PACKのdescription情報でも内容は確認してください。
参考:NGだったdescriptionの一括移行方法
①プラグインでのdescription対処方法
わたしがリライトしようとしたのが2023年の8月ごろ。その当時はDatabase My Adminというプラグインで対応できるという記事がほとんどでした。でも該当のプラグインは、2023年7月26日の時点で停止されてダウンロードできない状態になっていたのです。
このプラグインの公開は2023年7月26日に停止されており、ダウンロードできません。 この公開停止は一時的なもので、完全なレビューを待っている状態です。
my-database-admin
他のユーザーのためにも、ぜひ復活を望みます!
②SWELL開発者:了さんのdescription対処方法
SWELL開発者の了さんの記事でWordPressテーマ乗り換え時の対策ページがあります。小テーマのfunctionページにコードを追記して、descriptionなどの設定をプラグインに引き継ぐ方法です。
言い方が悪いかもですが、これはメタ系の情報を偽装する引き継ぎ方法なので、自分には合いませんでした。
ただし注意事項としてこちらの記載があります。ここは要注意ポイントです。
今回紹介するコードは、「出力を書き換える」だけのコードです。
つまり、記事の編集画面下にある SEO SIMPLE PACKの設定エリアは空白のままとなります。
SWELL
自分も実際に試してみましたが、了さんの注意書き通りに「SEO SIMPLE PACK」にはdescriptionの記載がなく空白なんです。。。
SEO SIMPLE PACK設定画面
ここでちょっと不便だなと感じたのは、descriptionを変更(リライト)したい!という時に、descriptionの記載内容がわからないことです。
元のdescription内容がわからないから、リライトのしようがない!?
書きようがなくはありませんね(汗)ただ参考になる元の文章がないため、リライトしづらいというのは事実です。やはり一括移行した方がWordPressサイトを運用していくうえではメリットがありそうです。
あくまでSANGOからWordPressテーマへ完全移行する際にdescriptionを表示させるためのコードです。SEO的には非常に意味があります。
ですがWordPressの管理画面では空白で見えないため、不便な面があるのは理解してご利用ください。
まとめ:SWELLへのテーマ変更後のリライトは効率的に
SANGOからSWELLへWordPressテーマを変更する際には、乗り換えサポート用プラグインがあるから大丈夫!と思っていたのですが、一時的な措置のため完全移行が望ましいというのが結論です。
SANGOからSWELLの乗り換えサポート用プラグインについて
- 2つのテーマ機能を共存させる形になるため、サイトが重くなる可能性があります。
全記事をリライトした後にプラグインを無効化することをオススメします。
SWELL開発者の了さんも、乗り換えサポート用プラグインに頼らない方が良いと言っています。全記事への見直しをかける意味でも、テーマ変更後の早急なリライトは重要なんですね。
とは言え記事数が多い場合はリライトも大変。できる限り効率的なリライトをしたい〜
今回はdescriptionの一括移行ということで、少し高度な内容になっております。ぜひ参考にしていただき、あなたのブログ作成が少しでも快適になれたら幸いです。質問や相談があれば気軽に、DMやメールください。
編集後記:参考にさせていただいたサイト
データベース操作からのdescription一括移行の参考にさせてもらったWebページです。ツッチーさん有益な記事をありがとうございますm(_ _)m この記事は親切にも、プラグインを利用する場合としない場合で書かれています。この記事があったからこそ、プラグインなしでのデータベース操作をやろうと決心しました。
それではまた!(^O^)/