1757275017
2025-09-04 09:36:00
導入
私の中で 前の投稿、編集者がCMSのプレビューをしながら未発表のブロックコンテンツを見ることができるように、Contentareaのレンダリングパイプラインを最適化する方法について説明しました。
このアプローチは、CMS UI(編集/プレビューモード)内でうまく機能します。しかし、あなたが同じ機能を有効にしたい場合はどうなりますか フロントエンドサイト、簡単なクエリ文字列フラグを使用していますか?
それがどこです ?showdrafts=true パラメーターが入ります。
問題
デフォルトでは、Optimizelyのみが表示されます 公開されたコンテンツ サイトページを直接閲覧するとき。ページにドラフトバージョンが保存されている場合でも(新規または更新されたブロックを使用して)、ドラフトが公開されていない限り、パブリックサイトに表示されません。
- ページインスタンス ルーティングによって返されるのは公開されているバージョンです。
- contentarearenderer レンダリング前に未発表のアイテムをフィルターします。
その結果、ドラフトページの未発表のブロックは目に見えません。
アプローチ
私たちは一緒に働く3つのことが必要です:
- 検出する
?showdrafts=true。 - ドラフトページバージョンをロードします 公開されたものの代わりに。
- すべてのContentAreaアイテムをレンダリングします (公開 +未発表)したがって、ドラフトブロックは除外されません。
ステップ1:ドラフトページを取得するヘルパー
ステップ2:ドラフトブロックもレンダリングをレンダリングします
オーバーライド ContentAreaRenderer いつ内部フィルタリングステップをスキップします showdrafts=true。
ステップ3:コントローラーの例
最終結果
- デフォルトのURL
/about-us→公開されたページ +公開されたブロックを表示します。 - と
?showdrafts=true→ロードします ドラフトページ (したがって、未発表のブロック参照が含まれています)、それらをレンダリングします。 - CMSプレビュー内で一貫して動作します そして パブリックサイト(編集者/管理者向け)。
閉じる考え
?showdrafts=true クエリパラメーターは、編集者がCMSプレビューに切り替えることなく、サイト上でドラフトコンテンツを直接検証できるシンプルだが強力な方法です。
私からのアプローチと組み合わされたとき 以前の投稿、あなたは今、両方の未発表のコンテンツを表示することを完全に制御できます 内部 そして 外 CMSインターフェイス。
覚えておいてください:匿名の訪問者にドラフトを公開しないでください – 常に役割のチェックを実施してください。
#フロントエンドで未発表のページとブロックをプレビューOptimizely #CMS #12Adnanのコードネクサス