移行代行サービスのショートコード整形オプションでは、WordPressからShopifyへインポートする際、記事内に含まれるショートコードはShopifyのテーマでも適切に表示される形式へと自動変換されます。 本ページでは、各ショートコードの具体的な挙動と、意図しない書き換えを防ぐための安全機能について解説します。
1. 自動変換される主要なショートコード
以下のショートコードは、Shopifyの本文(body_html)内で動作するHTMLタグや埋め込みプレイヤーに自動的に置換されます。
[gallery](画像ギャラリー)
複数の画像を並べて表示するショートコードです。
- 仕様:
ids属性に含まれるIDを実際の画像URLに解決し、columns(列数)に基づいたグリッドレイアウトとして出力します。 - 出力例: 各画像が
figureタグで囲まれ、全体がスタイル調整用のクラスを持つdivコンテナにラップされます。
[caption](画像キャプション)
画像に説明文(キャプション)を付けるショートコードです。
- 仕様: 画像タグとテキストを分離し、セマンティックな
<figure>と<figcaption>構造に変換します。
[audio] / [video](音声・動画プレイヤー)
音声ファイルや動画ファイルを記事内で再生するためのショートコードです。
- 仕様: ブラウザ標準の
<audio controls>または<video controls>タグに変換されます。 動画の場合はposter(サムネイル)属性も維持されます。
[embed](外部コンテンツ埋め込み)
YouTubeやVimeoなどの外部サイトを埋め込むためのショートコードです。
- 仕様: YouTubeやVimeoのURLを自動判別し、埋め込み用の
<iframe>プレイヤーに変換します。 その他のURLは安全のため外部リンクとして出力されます。
[playlist](再生リスト)
複数の音声・動画をリスト表示するショートコードです。
- 仕様: 複数の
<audio controls>または<video controls>プレイヤーを並べて出力します。
2. 意図しない変換を防ぐ安全機能
通常の文章中に含まれるブラケット [...] が誤って削除されたり変換されたりしないよう、以下の安全仕様を採用しています。
定義済みタグの判定
定義済みのタグ名は大文字・小文字を区別せず判定します。 [gallery] と [GALLERY] は変換対象です。 [gallery-custom] などの未定義名は保持します。
二重ブラケットによるエスケープ
WordPressの標準仕様と同様に、ブラケットを二重に記述することで変換を回避できます。
- 入力:
[[gallery]] - 出力:
[gallery](ショートコードとして実行されず、テキストとして表示されます)
未定義タグの保護
システムで定義されていない未知のタグについては、以下の通り処理されます。
- 囲み型
[tag]内容[/tag]: タグと内部の内容を含め、そのまま保持します。 - 単独型
[tag]: 後述のブラックリストに含まれていない限り、テキストとみなしてそのまま保持されます。
3. 不要なコードの自動削除(ブラックリスト)
Shopify移行時に不要となる既知のプラグイン由来のコードは、自動的に削除されます。
- 対象キーワード:
contact-form-7,mwform_formkey,gravityform,contact-form,rev_slider,layerslider,sitemap,addtoany,yoast_breadcrumbなど
これらの設定は開発者向けの設定ファイル(shortcode-config.ts)で管理されており、必要に応じて特定のタグを削除対象に追加することが可能です。
4. ページビルダーのコンテンツ復元
WPBakeryとDiviの既知の構造タグは、内部の文章を残して外します。 画像・画像一覧・ボタン・動画は、以下の属性から通常のHTMLへ復元します。 元のレイアウトや装飾CSSは再現しません。
| 種類 | 対応タグ |
|---|---|
| 画像 | vc_single_image, et_pb_image |
| 画像一覧 | vc_gallery, et_pb_gallery |
| ボタン | vc_btn, vc_button, et_pb_button |
| 動画 | vc_video, et_pb_video |
画像IDの解決にはXML内の添付画像URL、またはWP Pluginが取得するメディア情報が必要です。 画像情報がないJSONからIDだけで復元することはできません。 未対応の部品、未解決の画像、不正な属性は元のショートコードを残し、該当記事を画面に表示します。
5. 改行自動整形
通常は既存ブロックを保持し、ブロック外の文章を段落化します。 「既存ブロック内部の改行も整形」は初期OFFで、段落整形を有効にした場合に選択できます。 追加料金はありません。
有効にすると、divなどのコンテナ内の裸の文章に段落を付けます。 p・li・tdなどの文章要素では構造を保持し、文章中の改行をbrにします。 空白だけのインデント、タグ・属性・コメント、コード、SVG、MathML等は保持します。 プレビューで確認してください。
対象判定は、現在のマッピングと公開・下書きの選択範囲に従い、出力する本文と抜粋を全件調べます。 プレビューとCSVは同じ処理を使います。
標準のgallery・playlistも、指定メディアの一部または全部を解決できない場合はショートコード全体を保持し、該当記事を通知します。 音声・動画のURLを安全に変換できない場合も保持します。 未知の囲みタグの内部・ショートコード属性の改行は変更しません。 画像間の配置用改行にはbrを追加しません。