WordPressでプラグインの削除やthemeの変更により消えてしまったメタディスクリプションは特別な操作をしないかぎりデータベースへ残ったまま。
この編集済みのメタディスクリプションを新しい環境に移行させるにはデータベースの操作が必要ですが、その方法は上級者向けでリスクを伴います。
今回は、データベースを直接操作することなく作成済みのメタディスクリプションを編集画面からコピー&ペーストで移す方法をご紹介いたします。
編集画面に消えたメタディスクリプションを復活させる
ここで説明するfunction.phpを使った方法でも、トラブル時に備えて事前のバックアップや復旧手段の確保は必須になります。
うっかりミスNGなWPのファイルfunctions.phpとは
メタ ディスクリプションが消えた原因がプラグインの削除であれば、そのプラグインを再び有効化すればコピペは可能ですが、相性問題などでそれが出来ない場合に以下の方法でをコピーが可能です。
※以降の作業ではメタディスクリプション使われていたデータベース上のフィールド値を予め調べておく必要があります。
ここでは、専用プラグインAll in One SEOで書いたメタディスクリプション(フィールド値:_aioseo_description)を例に解説を進めます。
子テーマのfunction.phpを編集
まずは、ローカル環境などへ子テーマのfunction.phpをコピーしてバックアップ(このファイルは編集せずに保管)します。
また、万が一のためにレンタルサーバーが提供するシステムなどを使ってデータベースのバックアップもしておけば安心です。
バックアップが済んだらエディターを使って子テーマのfunction.phpを開き次のコードを追記します。
add_action('add_meta_boxes', 'add_oldfield');
function add_oldfield() {
add_meta_box('oldtextfield', 'コピー元のディスクリプション', 'old_description', 'post');
}
function old_description($post){
echo '<textarea name="_aioseo_description" style="width:550px; height:100px;">'.esc_textarea(get_post_meta($post->ID, "_aioseo_description", true)).'</textarea>';
}
赤のマーカー部分はメタディスクリプションに使っていたプラグインやテーマで使われているデータベースのフィールド値に変更します。
編集が済んだらファイルを上書き保存し適用させます。
投稿編集画面でコピー&ペースト
WordPressの管理画面にログインし投稿編集画面を表示させます。
function.phpの編集により画面下に既存のメタディスクリプションが表示されているはずです。
この内容を新しいメタディスクリプションの編集エリアへコピペさせ投稿ページを更新させるとこれまで使っていたメタディスクリプションが投稿に反映されます。
これを投稿済みのページごとに繰り返します。
移行が済んだらfunction.phpを元に戻す
今回用いたfunction.phpへの記述は削除または無効化して表示できなくなったプラグインやテーマのメタディスクリプションを一時的に編集画面に表示させたものです。
編集済みの内容を変更したり削除はできませんがコピーは可能です。
移行先への新しい環境にコピーが済んだらfunction.phpに追加していた記述は削除してしまいましょう。
先にも書いたとおり、メタディスクリプション用に使っていたプラグインを再度インストールすれば今回の方法によらなくても投稿の編集画面でコピペは可能です。
しかし、古い環境と新しい方の両方を有効化した場合、コピーした古いメタディスクリプションを削除しないと公開ページのheadタグ内で表示がダブってしまいます。
すでに数10件以上の投稿ページがある場合などでは、コピーに時間もかかって両方の有効化は現実的ではないかもしれません。
また、テーマを別なものへ変更しているケースだとそもそも古いテーマを同時に有効にできないので、メタディスクリプションのコピーには今回のような方法を用いる必要があるでしょう。
おすすめ記事
管理画面の投稿一覧にメタディスクリプションを表示させる プラグインやテーマで作成したメタディスクリプション「meta description」は何処にある?