2026年5月20日

2026年5月20日

WordPressの廃止されたプラグインを代替プラグインに移行する方法

はじめに

WordPressプラグインは開発停止・セキュリティ問題・WordPress公式リポジトリからの削除が起こることがあります。廃止されたプラグインを使い続けることはセキュリティリスクとなるため、速やかに代替プラグインへ移行する必要があります。

症状・原因

  • 使用中のプラグインが開発停止になった
  • プラグインがWordPress公式リポジトリから削除された
  • セキュリティ脆弱性が発見されたプラグインを使っている
  • 旧プラグインから新プラグインへのデータ移行方法がわからない

解決手順

ステップ1:廃止プラグインを特定・確認する

# 更新が停止しているプラグインを確認
wp plugin list --fields=name,version,update --format=table

# プラグインの情報をWordPress.orgから取得
wp plugin get contact-form-7 --format=json | python -m json.tool | grep -E "last_updated|tested"

# 公式リポジトリから削除されたプラグインを確認
# (404が返ればリポジトリから削除済み)
wp plugin install deleted-plugin-slug 2>&1 | grep -i "error\|not found"

# インストール済みプラグインの一覧をバックアップ
wp plugin list --fields=name,status,version --format=csv > plugin-backup-$(date +%Y%m%d).csv

ステップ2:代替プラグインを選定する

よくある廃止プラグインと代替候補:

【フォーム系】
❌ Ninja Forms(一部機能廃止)
✅ Contact Form 7 / WPForms / Gravity Forms

【スライダー系】
❌ Slider Revolution(旧バージョン)
✅ Smart Slider 3 / Swiper.js(コード実装)

【SEO系】
❌ All in One SEO Pack(古いバージョン)
✅ Yoast SEO / Rank Math SEO

【バックアップ系】
❌ BackupBuddy(コスト高)
✅ UpdraftPlus / WPvivid

【eコマース系】
❌ WP e-Commerce(開発停止)
✅ WooCommerce / Easy Digital Downloads

【メンバーシップ系】
❌ WP-Members(機能限定)
✅ MemberPress / Restrict Content Pro

ステップ3:移行前にバックアップを取る

# 完全バックアップ(DB + ファイル)
wp db export --add-drop-table backup-before-migration-$(date +%Y%m%d).sql
tar -czf files-backup-$(date +%Y%m%d).tar.gz wp-content/

# 旧プラグインのデータをエクスポート
# (プラグインによってエクスポート方法が異なる)

# 旧プラグインの設定をDBから直接確認
wp option list --search="old_plugin*" --format=table

# ショートコードを使用しているページを確認
wp post list --post_type=page --format=table | head -20
wp db query "SELECT ID, post_title FROM wp_posts
  WHERE post_content LIKE '%[old_shortcode%'
  AND post_status='publish'"

ステップ4:代替プラグインをインストール・設定する

# 新しいプラグインをインストール
wp plugin install new-plugin-slug --activate

# 旧プラグインの設定を確認して手動で移行
wp option get old_plugin_settings --format=json

# 新プラグインの設定を確認
wp option get new_plugin_settings --format=json

# 新プラグインが正常に動作するか確認
wp plugin status new-plugin-slug

ステップ5:ショートコードをブロックへ移行する

// 旧ショートコードを新しい形式にマッピング
// functions.php に追加(移行期間中のみ)
add_shortcode('old_contact_form', function(array $atts): string {
    // 旧ショートコードを新しいショートコードにリダイレクト
    $atts = shortcode_atts(['id' => '1'], $atts);
    // 新プラグインのショートコード形式で出力
    return do_shortcode('

エラー: コンタクトフォームが見つかりません。

) . '"]'); });
# ショートコードの一括置換(DBで直接置換)
wp search-replace '[old_shortcode' '[new_shortcode' \
  --all-tables --report-changed-only

# 置換結果を確認
wp db query "SELECT ID, post_title FROM wp_posts
  WHERE post_content LIKE '%[new_shortcode%'"

ステップ6:旧プラグインを無効化・削除する

# 新プラグインで動作確認後、旧プラグインを無効化
wp plugin deactivate old-plugin-slug

# 数日間様子を見てから削除
wp plugin delete old-plugin-slug

# 旧プラグインが残したデータをクリーンアップ
wp option delete old_plugin_settings
wp option delete old_plugin_version

# 旧プラグインのカスタムテーブルを削除(必要な場合)
wp db query "DROP TABLE IF EXISTS wp_old_plugin_data"

# パーマリンクをリセット
wp rewrite flush --hard

ステップ7:移行後の動作確認

# 全ページのリンク切れを確認
wp plugin install broken-link-checker --activate
wp cron event run brokenlinkchecker

# キャッシュをクリア
wp cache flush
wp transient delete --all

# 移行完了後のプラグイン状態を記録
wp plugin list --status=active --format=csv > plugin-after-migration-$(date +%Y%m%d).csv

注意事項

  • 廃止プラグインのデータ(設定・投稿メタ・カスタムテーブル)は移行後も一定期間残しておいてください。すぐに削除すると問題が起きたときに復旧できません
  • ショートコードを大量に使用している場合は一括置換前にステージング環境でテストしてください
  • 移行後は必ずページの表示・フォームの動作・決済フローを手動でテストしてください

まとめ

廃止プラグインの移行は「バックアップ → 代替インストール → 設定移行 → ショートコード置換 → 旧プラグイン削除」の順で進めます。wp search-replace でショートコードを一括置換し、旧プラグインのデータは一定期間保持してから削除してください。

お気軽にご相談ください

お見積りへ お問い合わせへ