ウィジェットページをコンテンツページに変換する
ウィジェットページは、Liferay DXP 2026.Q3 以降 非推奨 となっており、今後のメジャーリリースで削除される予定です。 コンテンツページ はそれらの代替です。 既存のウィジェットページは引き続き機能しますので、準備ができたら変換してください。
ウィジェットページをコンテンツページに直接変換することも、変換後のドラフトをプレビューして変更を加え、公開することもできます。
変換するページが複数ある場合は、サイト管理画面から一括変換するか、利用可能なAPIと組み込みのスクリプトエディタを使用してすべてのウィジェットページを一度に変換できます。 ここでは、すべてのアプローチについて説明します。
ウィジェットページをプレビューしてコンテンツページに変換する
ウィジェットページを変換する前に変換ドラフトをプレビューするには、次の手順に従ってください。
-
サイトメニュー (
) を開き、 サイトビルダー → ページ に移動します。 -
目的のウィジェットページの横にある アクション (
) を開き、 コンテンツページに変換… を選択します。 -
警告を確認し、変換下書きに必要な調整を行います。 この時点で、必要なフラグメントを下書きに追加することもできます。
-
プレビュードラフトを公開するには、 公開 をクリックするか、ウィジェットページを元の状態に戻すには、 変換ドラフトを破棄 をクリックしてください。 警告がある場合は、以下で説明するように、ベストエフォートの変換が完了します。
ベストエフォートコンバージョン
ウィジェットページの一部の機能はコンテンツページではサポートされていないため、そのまま変換することはできません。 これらの場合、ユーザーには問題が警告され、ベストエフォートの変換が処理されます。 以下のウィジェットページ機能はサポートされていません。
ネストされたアプリケーション: ネストされたアプリケーションは、変換時にレイアウトの同じ列に配置されます。 最善を尽くした変換が完了した後、必要に応じてこれらのアプリケーションを再編成してください。
カスタマイズ可能なセクション: ページが カスタマイズ可能の場合、ユーザーが行ったカスタマイズは変換中に失われます。
カスタムページレイアウト: レイアウトが変換可能な場合、レイアウトの構造は保持され、ユーザーに警告が表示され、続行する前に変換ドラフトを確認する機会が与えられます。 レイアウトを変換できない場合、すべてのウィジェットは単一の行と列に配置されるため、ページ変換後に手動で再配置する必要があります。
カスタムレイアウトテンプレートが変換可能であることを既に確認済みであれば、そのレイアウトテンプレートの変換警告を無効にすることで、そのレイアウトを使用するウィジェットページを変換するたびに警告が表示されないようにすることができます。
グローバルメニュー (
) を開き、 コントロールパネル → 設定 → システム設定 に移動します。
コンテンツ & データの下の ページ を選択し、 ウィジェット ページからコンテンツ ページへのコンバーターに移動して、レイアウト テンプレート ID を検証済みレイアウト テンプレート ID のリストに追加します。
ウィジェットページではポートレットは render-weight に従ってレンダリングされますが、コンテンツページではそうではありません。 ポートレットはコンテンツページに表示される順序(左から右、上から下)でレンダリングされるため、コンテンツページ上の配置によっては、一部のポートレットのレンダリングが早かったり遅かったりする場合があります。
ウィジェットページをコンテンツページに直接変換する
-
サイトメニュー (
) を開き、 サイトビルダー → ページ に移動します。 -
ウィジェットページ、または複数のウィジェットページを選択する場合は、チェックボックスをオンにしてください。 管理ツールバーの アクション (
) をクリックし、 コンテンツページに変換 オプションを選択します。

- 変換を完了するには、表示されるプロンプトで OK をクリックします。
APIを使用してすべてのウィジェットページをコンテンツページに一括変換する
組み込みのスクリプトエディタを使用すると、サイト上のすべてのウィジェットページをコンテンツページに一括変換できます。
-
グローバルメニュー (
) を開き、 コントロールパネル → システム → サーバー管理 → スクリプト に移動します。 -
スクリプトウィンドウにこのスクリプトを入力してください。その際、グループIDを必ずご自身のグループIDに置き換えてください。 Groovy スクリプトは、
BulkLayoutConverterインターフェース を使用して、指定されたグループ ID を持つすべてのウィジェット ページをコンテンツ ページに変換します。import com.liferay.layout.util.BulkLayoutConverter import com.liferay.portal.kernel.util.ArrayUtil import org.osgi.framework.ServiceReference import org.osgi.framework.BundleContext import com.liferay.portal.kernel.module.util.SystemBundleUtil import org.osgi.framework.BundleContext BundleContext bundleContext = SystemBundleUtil.getBundleContext(); ServiceReference serviceReference = bundleContext.getServiceReference(BulkLayoutConverter.class.getName()); BulkLayoutConverter bulkLayoutConverter = bundleContext.getService(serviceReference); long groupId = 20118L // groupId を使用してください long[] plids = bulkLayoutConverter.getConvertibleLayoutPlids(groupId) out.println("変換前の変換可能なレイアウト:" + ArrayUtil.toStringArray(plids)) long[] convertedLayoutPlids = bulkLayoutConverter.convertLayouts(groupId) out.println("変換済みレイアウト:" + ArrayUtil.toStringArray(convertedLayoutPlids)) plids = bulkLayoutConverter.getConvertibleLayoutPlids(groupId) out.println("変換後の変換可能なレイアウト: " + ArrayUtil.toStringArray(plids)) -
をクリックして を実行すると、スクリプトが実行されます。
-
出力は以下のスニペットと似たようなものになり、変換可能なレイアウト(ページ)が残っていないことを示します。
変換前の変換可能なレイアウト:[25, 26, 27] 変換後のレイアウト:[25, 26, 27] 変換後の変換可能なレイアウト: []
トラブルシューティング
以下に、ウィジェットページをコンテンツページに変換する際に発生する可能性のある問題点について説明します。
削除されたユーザーが作成したウィジェットページを変換しようとすると、変換が失敗する
削除されたユーザーによって作成されたウィジェットページを変換しようとすると、エラーが発生して処理が失敗します。
この問題を解決するには、ウィジェットページをコピーし、コピーしたページをコンテンツページに変換してから、元のウィジェットページを削除してください。
ウェブコンテンツ表示ウィジェットの問題
変換されたページにWebコンテンツ表示ウィジェットが存在する場合、Webコンテンツの検索結果をクリックすると、ページコンテキスト外でそのコンテンツが開くことがあります。
コンテンツが正しいページに表示されるようにするには、Webコンテンツ表示ウィジェットを編集して保存し、ページを公開してください。