WordPressテーマ乗り換え完全ガイド│旧テーマの見た目と機能を再現するプラグインの作り方

WordPressでテーマを変更すると、以前のテーマで使用していたショートコードや装飾ボックスボタンカラムレイアウトなどが正しく表示されなくなる問題がよく発生します。

そんなときに役立つのが、テーマ乗り換え支援プラグインです。

この記事では、STORK・SANGO・THOR・JINなどの人気テーマからSWELLへの移行プラグインの中身を分析しつつ、どのテーマにも応用できる乗り換え支援プラグインの作り方を詳しく解説します。

  • Cocoon → SWELL:ショートコードの種類が多いため再定義が重要
  • SANGO → SWELL:見た目重視のbox系変換とCSS調整が中心
  • THOR → SWELL:クラス名置換とボタン/吹き出し系CSS変換が肝
  • JIN → SWELL:JIN特有の広告ショートコードや評価スタイルに注意
目次

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

目的

  • 旧テーマの独自クラスを新テーマ用に変換する
  • ショートコードの互換性を確保する
  • レイアウト崩れを防ぐCSS調整を行う

構成すべき主な機能

以下の5つを乗り換え機能が必要でした。

1. クラス名の変換(the_contentフック)

旧テーマで使用されていたHTMLクラス名を新テーマ対応のものへ変換します。

add_filter('the_content', function($content) {
    $content = str_replace('old-box', 'is-style-swell-box', $content);
    $content = str_replace('old-btn', 'is-style-btn_normal', $content);
    return $content;
}, 20);

2. ショートコードの再定義

旧テーマ固有のショートコード(例:, [blogcard url=...])を再定義して、新テーマの同等機能にマッピングします。

add_shortcode('blogcard', function($atts) {
    return do_shortcode('[swell_blogcard url="' . esc_url($atts['url']) . '"]');
});

3. 旧CSSの読み込み + 最小化 + 最適化

旧テーマの style.css を読み込み、以下のように加工して使います:

  • セレクタを .content.post_content などに置換
  • .wp-.widget_ などの不要なセレクタを除外
  • @media の条件式にも対応
$css = file_get_contents(get_theme_root() . '/oldtheme/style.css');
$css = str_replace('.content', '.post_content', $css);
wp_add_inline_style('theme-style', $css);

別テーマのCSSを読み込むので、読み込み数は増えてしまいます。

4. 吹き出し画像やレビューBoxの画像も再指定

add_action('wp_head', function() {
    echo '<style>
    .post_content .balloon__img-left div {
        background-image: url("https://oldtheme.com/img/img_cat.gif");
    }</style>';
});

CSSを追記しているだけです。

5. Service Workerの解除など特殊機能の対処

THORのようなPWA対応テーマでは、Service Workerを解除しないとキャッシュに旧JSが残ることがあります。

add_action('wp_footer', function() {
    echo '<script>
        navigator.serviceWorker.getRegistrations().then(function(regs){
            regs.forEach(reg => reg.unregister());
        });
    </script>';
});

まとめ

乗り換え支援プラグインを作成することで、古い記事の再修正を避けつつ、新しいテーマを最大限活用できます

一度作っておけば、他のサイトにも再利用可能です。

  • URLをコピーしました!

WAZAの有料記事のサブスクリプションも開始しました。

サービス

Service

WordPressサイトのカスタマイズのサービスに関心がありましたら、ぜひ詳細をご覧ください。

目次