Custom Field Suite(CFS)の移行ガイド|ループ・保存データ・表示を確かめる手順

CFSの移行は、プラグインを選ぶ前に保存データと表示コードを調べることが先です。代替を有効化しても、旧フィールドの値が自動で読み出せるとは限りません。本文の繰り返し表示へ作り直すか、投稿メタとして検索・参照を続けるかを決め、代表的なループ1件で入力・保存・表示を検証しましょう。

CFSからの移行先を決めきれていない段階なら、先にカスタムフィールドプラグイン比較2026|ACF・SCF・CFS・Lazy Blocksの選び方で全体像を掴んでおくと、この記事の手順も選びやすくなります。

この記事では、CFSのループを記事内の繰り返しブロックへ作り直す例を紹介します。商品情報などを検索・集計する用途では、投稿メタを維持する方が適切な場合もあります。用途と保存先を決めてから、移行先を選んでください。

緊急のお知らせ

CFSの移行前に、1つのループを再現する

導入バージョンと利用箇所を確認し、バックアップ後に検証環境で試します。本文中の繰り返し項目へ作り直す方はLazy Blocksの手順を確認できます。

  • 旧フィールドと出力コードを把握
  • 小さなデータで型と並び順を照合
  • 確認後に移行範囲を広げる

Repeaterの作成・表示手順を読む

配布停止と、既存データの消失は別の問題です。

CFSには複数の脆弱性情報が公開されています。たとえばJVNDB-2024-004159は2.6.7以前を対象とするXSSの情報です。影響範囲は各情報で異なるため、配布停止の日付だけで判断せず、導入バージョンと該当する問題を照合しましょう。

脆弱性情報を見るときは、問題ごとの対象バージョンと影響を確認します。公開停止の日付だけから原因や自分のサイトへの影響を決めず、利用中の版と該当情報を照合したうえで移行を進めてください。

配布停止は、設置済みフィールドがその日から消えるという意味ではありません。一方、今表示できることだけで今後の互換性や保守を判断することもできません。停止操作より先に、バックアップと移行先での再現確認を進めます。

Index

移行先候補を比較する

CFSからの移行先としてよく挙がる候補を整理しました。

プラグイン料金ループフィールド相当の機能特徴
Pods無料◯(Repeatable Group)高機能だが独自の管理画面・用語に慣れが必要
ACF Lite無料×リピーターはPro版限定
ACF Pro$49〜249/年◯業界標準、移行事例も多い。サブスク費用が発生
Meta Box無料〜有料◯(無料枠あり)高機能、フィールドタイプが豊富
Lazy Blocks無料◯(Repeaterが無料版標準搭載)ブロックエディタに標準統合。CFSと違いメタボックスではなくブロックとして本文に配置
PHP直書き(add_meta_box)無料自前実装次第自由度は最大だが、保守性は低い

会社沿革やFAQのように本文中で並べ替えて使う項目なら、Lazy BlocksのRepeaterが候補になります。複数ページから条件検索するデータやテンプレート全体で参照する値は、ACFやPodsなども含め、保存形式と取り出し方を比較してください。

装飾ブロック系のプラグインでも同様に、開発終了・有料化をきっかけにLazy Blocksへ乗り換える動きがあります。具体例としてArkhe Blocksの無料版が使えなくなった人へ|安全な代替手段もあわせてご覧ください。

移行先としてACF Proを検討している場合は、その年額サブスクリプション費用も含めてカスタムフィールドプラグイン比較2026で先に確認しておくことをおすすめします。

この後は、CFSのループを本文中のブロックへ作り直す例です。既存の投稿メタをそのまま使う移行手順とは異なります。保存先を変更する理由がある場合に、入力項目と出力の対応を確認してください。

CFSのループフィールドをLazy Blocksに移行する

CFSで「実績・導入事例紹介」のようなループフィールドを作っていた場合を例に、Lazy Blocksでの再現方法を解説します。

CFSでの構成(Before)

CFSでは、投稿編集画面の下に表示されるメタボックス内に、「Loop」フィールドタイプで実績名・実施年・概要をセットにして繰り返し入力する構成が一般的でした(実績紹介・導入事例一覧などでよく使われるパターンです)。

Lazy Blocksでの構成(After)

Lazy BlocksではRepeaterに年・見出し・説明などの子コントロールを作り、入力した行をループ出力します。これはCFSの値を自動変換する操作ではありません。まず数行を手動で移し、空欄、改行、並び順、出力エスケープを確かめてから一括変換を検討しましょう。

1. Repeater — Label: 実績一覧 / Slug: works_list
   a. Text     — Label: 実績名 / Slug: work_title
   b. Text     — Label: 実施年 / Slug: work_year
   c. Textarea — Label: 概要   / Slug: work_summary
PHP
<?php if ( ! empty( $attributes['works_list'] ) && is_array( $attributes['works_list'] ) ) : ?>
<ul class="works-list">
  <?php foreach ( $attributes['works_list'] as $work ) : ?>
    <li class="works-item">
      <span class="works-year"><?php echo esc_html( $work['work_year'] ?? '' ); ?></span>
      <div class="works-body">
        <p class="works-title"><?php echo esc_html( $work['work_title'] ?? '' ); ?></p>
        <p class="works-summary"><?php echo nl2br( esc_html( $work['work_summary'] ?? '' ) ); ?></p>
      </div>
    </li>
  <?php endforeach; ?>
</ul>
<?php endif; ?>

CFSとの主な違い(つまずきやすいポイント)

CFSでの感覚Lazy Blocksでの実態
メタボックス内に固定表示されるブロックとして本文中の好きな位置に配置する(複数配置も可能)
PHPテンプレート側でget_field()のような関数を呼び出すブロック自体に出力コードを持たせるため、テーマ側で個別に取得コードを書く必要がない
ループの入れ子(Loop内Loop)が可能だったLazy Blocksはリピーターの入れ子(ネスト)を公式に非対応としている。同じ構成が必要な場合は、複数の独立したリピーターに設計し直す

移行表には「旧フィールド名→移行先の名前→値の型→表示箇所」を記録します。たとえば実績紹介なら、年は数値か文字列か、画像はIDかURLか、未入力の概要をどう表示するかまで決めます。見た目が合っていても型や行順が違えば後から不具合になるため、0件・1件・複数件と空欄を含むデータで照合してください。Lazy BlocksのRepeaterで二重ループを置き換える場合は、入れ子非対応を前提に構造を見直します。

比較でわかる

データの用途から移行先を比較する

記事内で配置する項目か、複数ページから検索・参照するデータかを先に決めます。費用だけでなく、保存形式と移行作業も比較してください。

  • ブロックと投稿メタの用途を区別
  • 既存データの移行方法を確認
  • 入力担当者の作業も試す

CFSの代替候補と違いを比較する

この記事の比較表へ移動します。

Podsへの移行という選択肢も

実際にCFSからPodsへ移行し、Repeatable Group機能でループフィールドを再現した制作者の記録もネット上にあります。Podsは非常に高機能なプラグインで、複雑なリレーション(投稿同士の関連付け)を組みたい場合には有力な選択肢です。

Podsなどの移行候補も、同じ代表データで比較すると判断しやすくなります。入力担当者が行の追加・並べ替えをできるか、既存テンプレートの変更量はどの程度か、残りのデータに一括変換が必要かを記録しましょう。無料かどうかだけでなく、移行作業と今後の保守を担当できるかまで含めて選びます。

結論:あなたに合った移行先

こんな人にはおすすめ
ブロックエディタ中心で運用、シンプルな繰り返し項目が中心Lazy Blocks
投稿同士の複雑なリレーションを組みたいPods
法人サイトで手厚いサポート・ドキュメントを重視ACF Pro
なるべく学習コストをかけたくない、無料で完結させたいLazy Blocks

まず代表的な1ページを複製し、移行前後の件数・行順・空欄・画像・公開表示を比べましょう。検証が通ったら対象を少しずつ増やし、旧データを残した状態で戻せるかも確かめます。候補選びに戻る必要がある方はカスタムフィールドの比較記事で保存先と用途を整理してください。

無料プレゼント

ブロックへの移行を、無料テンプレートで試す

入力と表示の構成を確かめるために、検証用ページへ1種類だけ導入しましょう。CFSの保存値は別途移行し、件数と内容を照合します。

  • 必要な構成を選んで導入
  • CFSデータは別途変換・転記
  • テーマとスマホ表示を確認

テンプレートの内容と導入手順を見る

テンプレートの導入だけでCFSデータは移りません。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

個人でWordPressブログを運営しています。WordPress歴7年。実際に契約・利用しているConoHa WINGとSWELLを中心に、ブログの開設、表示・編集環境の改善、SEO、アフィリエイト、AIを使った制作効率化を検証しています。

公式情報を確認するだけでなく、実機で試した結果、うまくいかなかった点、向かないケースも含めて共有します。読者が遠回りせず、自分のブログで次の一手を選べる情報を届けることが目標です。

Index