タグアーカイブ テキストエディタ

Elementorテキストエディタで段落が勝手に横並びになる時の直し方

Elementorのテキストエディタウィジェットで複数段落を入力したとき、編集画面では問題ないのに公開ページで急に横並びになる現象は、WoodMartテーマが組み込むフレックスボックス(Flexbox)のグローバルスタイルや、テーマ側の段組み(カラム)レイアウト用CSSが誤って適用されていることが主な原因だ。

なぜElementorの段落が公開サイトで横並びになるのか

なぜElementorの段落が公開サイトで横並びになるのか

WoodMartテーマは、WPBakeryと並んでElementor対応を謳う多機能テーマだ。その内部ではグリッドレイアウトや商品カードの並びを柔軟に制御するため、.entry-content.elementor-widget-text-editor といったコンテナに対して display: flexflex-wrap: wrap をデフォルトCSSとして指定しているケースがある。

このような設定が有効だと、コンテナ直下の <p> タグはフレックスアイテムとして扱われ、利用可能な幅の中で自動的に横方向へ配置されるのだ。通常のブロック要素であれば改行されるため縦に積み重なるが、フレックスコンテナの子要素はこの規則から外れる。その結果、編集画面では普通に見えていても、テーマのグローバルCSSがロードされるフロントエンドでのみ崩れが発生するという、なかなか気づきにくいトラブルになる。

ほかにも、Elementorの「段組み」設定の競合や、意図せず有効化されたCSSの最適化機能が影響することもあるが、ほとんどはWoodMartのベーススタイルが起点だ。次の項で切り分け手順を確かめつつ修正していく。

問題の再現状況をデモで確認する

問題の再現状況をデモで確認する
Before(公開ページで横並び)

「会社概要についての本文がここにあります。WoodMartの特徴を活かしたレイアウトです。」

「サービス一覧のご案内です。Elementorを使って自由に編集した内容がここに入ります。」

2つの段落が横に並んでいる(フレックスアイテム化している)
After(CSS追加で縦並びに修正)

「会社概要についての本文がここにあります。WoodMartの特徴を活かしたレイアウトです。」

「サービス一覧のご案内です。Elementorを使って自由に編集した内容がここに入ります。」

各段落が改行され、通常のブロック要素として縦に積まれている
エラー状態(横並び)  修正後(縦並び)

フレックスコンテナの子要素だから横に並ぶ、という仕組みをこのデモで示している。原因のCSSを特定し、段落の並びをブロック表示に戻せば解決できる。

ElementorとWoodMartで段落が横並びになるCSSの特定と修正手順

ElementorとWoodMartで段落が横並びになるCSSの特定と修正手順

ここからは実際にサイトを修正するための手順を説明する。作業は大きく3ステップだ。修正用のCSSは数行で済むが、きちんと原因を突き止める手順を踏まないと、後日ほかのレイアウト崩れを引き起こす可能性がある。

ブラウザの検証ツールで適用されているスタイルを調べる

まずはChromeのデベロッパーツール(F12キー)を使って、公開ページ上のテキストエディタ部分を調べる。<p> タグを右クリックし「検証」を選択すると、スタイルパネルで各要素に適用されているCSSを確認できる。

ここで最も注目すべきは、テキストエディタのラッパー要素(たいていは .elementor-widget-text-editor か、WoodMartが生成する固有のクラスが付いたdiv)に対して display: flexdisplay: grid が指定されていないかどうかだ。仮に以下のようなCSSが表示された場合、これが横並びの直接的な原因になる。

.elementor-widget-text-editor {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

このCSSがWoodMartの親テーマ、または子テーマのスタイルシートから読み込まれている場合は、検証ツールの右上にファイル名と行番号が表示される。原因となるファイルが特定できたら、次の手順で上書きするCSSを追加しよう。

修正用CSSを追加する場所を選ぶ

原因となっている display: flex を打ち消すには、以下のようなCSSを適用すればよい。要素をブロック表示に戻すには display: block を指定し、内部の段落が確実に積み重なるようにする。

.elementor-widget-text-editor {
    display: block !important;
}
.elementor-widget-text-editor p {
    display: block;
    width: 100%;
}

このCSSは以下のいずれかの場所に追加する。優先順位順に記す。

  1. 管理画面の「外観」→「カスタマイズ」→「追加CSS」(最も手軽で、テーマに関係なく安全)
  2. WoodMartのテーマオプションにあるカスタムCSS欄
  3. Elementorのサイト設定内のカスタムCSS

注意点として、追加CSSに !important を使うのはどうしても優先度で負ける場合の最終手段だ。まずは !important なしで試し、効かなければ付与するという手順を踏むほうが、意図しないカスケード崩れを防げる。上記のコード例では !important を付記したが、自身の環境で不要なら省略して構わない。

Elementorとキャッシュのクリアを忘れずに行う

CSSを追加してもすぐに反映されない場合、Elementor固有のキャッシュや、サーバー側のキャッシュが影響している。Elementorの「ツール」メニューから「CSSとデータを再生成」を実行し、さらに「Elementor」→「設定」→「高度な設定」でCSSの出力方法を「外部ファイル」から「内部埋め込み」に切り替えて一時的に様子を見るのもひとつの手だ。

サーバーでLiteSpeed CacheやW3 Total Cacheなどのキャッシュ系プラグインを使っているなら、管理画面から全キャッシュを削除しておく。とくに「CSSの最適化」や「CSSの結合」をオンにしている場合、追加したCSSが適用されない原因になりやすい。キャッシュをクリアしたあとに、シークレットモードで公開ページを開いて検証する。

テーマをアップデートする際の注意点と恒久対策

テーマをアップデートする際の注意点と恒久対策

今回の現象はあくまでテーマの全体的なスタイル指定が原因であり、Elementorのバグではない。WoodMartが将来のアップデートでこのフレックスボックス指定を変更する可能性もゼロではないが、テーマのアップデートに依存するのはリスクが高い。

恒久的な対策としては、親テーマを直接編集せず、子テーマの style.css か「追加CSS」に上書きルールを残すことだ。もしテーマのバージョンアップ後に問題が再発したら、原因のCSSセレクタが変わっていないか検証ツールで再確認し、セレクタを合わせて更新すればすぐに直せる。

複数ページで同じテキストエディタウィジェットを使っている場合は、サイト全体に影響する「追加CSS」での対応が推奨だ。特定のページや投稿タイプでのみ発生しているなら、該当ページのElementor編集画面で「サイト設定」→「カスタムCSS」を使い、スコープを絞った指定をする手もある。

よくある質問

テキストエディタ以外のウィジェットでも同じ症状は出るのか

見出しウィジェットや画像ウィジェットなど、直下に複数のブロック要素がぶら下がらない種類のウィジェットでは、この現象はまず起きない。ただし「内部セクション」や「Flexboxコンテナ」などの新しめのコンテナ系ウィジェットを使っていると、似た横並びが発生することがある。

WoodMart以外のテーマでも同じことが起きるのか

汎用的なテーマでは稀だが、カラム多用型の多機能テーマ(Avada、The7、Flatsomeなど)でも同様の報告がある。いずれの場合も、根本原因はテーマが付与しているフレックスボックスやグリッドのグローバルCSSだ。

追加CSSで直したのにスマホ表示だけ直らない

デスクトップでは修正されても、モバイル用のメディアクエリ内で再度 flex-direction: row が指定されている可能性がある。検証ツールでデバイスモードに切り替え、同じテキストエディタで適用されているスタイルを再確認する。必要ならメディアクエリを追加して上書きしよう。

子テーマのstyle.cssに書いても効かないのはなぜか

読み込み順の問題がほとんどだ。親テーマのCSSが子テーマより後で読み込まれていると、詳細度が同じなら後勝ちで上書きされる。functions.phpで子テーマのCSSを依存関係付きで読み込んでいるか確認し、どうしても効かないなら「追加CSS」機能(wp_headの最後で出力される)を使うほうが確実だ。

この記事のポイント

  • Elementor編集画面では正常でもフロントエンドでテキスト段落が横並びになる場合、WoodMartが付与するflex指定が原因
  • ブラウザの検証ツールで適用されているdisplayプロパティを特定し、追加CSSでブロック表示に戻す
  • 修正CSSは外観カスタマイズの「追加CSS」がもっとも安全で確実
  • CSS追加後はElementorのCSS再生成とサーバーキャッシュのクリアをセットで行う
  • テーマアップデート後も再発しにくいよう、恒久対策として上書きルールを残しておく