「段落」ブロックでPC・モバイルごとに改行を追加する方法

Cocoonカスタマイズ集
この記事は約1分で読めます。
記事内に広告が含まれています。

はじめに

「段落」ブロックでShift+Enterを押すと、改行コード<br>が挿入されます。

SWELLでは、独自のショートコードを使うことで、改行位置をPCとモバイルで切り替え表示できます。

そこで、Cocoonでも同様に、ショートコードを追加してPCとモバイルで改行位置を切り替え表示できるようにします。

この記事では、この方法について説明します。

完成イメージ

このコードは通常ではここで改行します。↓
しかし480px以下ではここで改行します。↓

使用方法

以下にショートコードを示します。

「段落」ブロックの途中に入力することで、PCでは改行されます。

[my_pcbr]

「段落」ブロックの途中に入力することで、モバイルでは改行されます。

[my_spbr]

実装手順

以下の手順で実装します。

  • ラベル
    PHPを追加

    以下のコードをfunctions.phpに追加します。

    add_shortcode('my_pcbr', function () {
      return '<br class="pcbr">';
    });
    
    
    add_shortcode('my_spbr', function () {
      return '<br class="spbr">';
    });
  • ラベル
    CSSを追加

    以下のコードをstyle.cssに追加します。

    .pcbr,
    .spbr {
      display: block;
    }
    
    @media (width <= 834px) {
      .spbr {
        display: block;
      }
    
      .pcbr {
        display: none;
      }
    }

参考:VK Blocksの画面サイズ毎の改行

VK Blocksには、見出しや段落ブロックなどで、画面サイズ毎に改行位置を指定できる機能があります。

編集画面から改行したい箇所に、改行タグ用のコードを挿入することで、xs~xxlの各サイズに応じて改行位置を切り替えられます。

使用方法

以下にショートコードを示します。

[my_br_表示サイズ]
表示サイズ範囲
xs表示幅 ≦ 576px
sm576px < 表示幅 ≦ 768px
md768px < 表示幅 ≦ 992px
lg992px < 表示幅 ≦ 1200px
xl1200px < 表示幅 ≦ 1400px
xxl1400px < 画面幅

実装手順

以下のコードをfunctions.phpに追加します。

add_action('init', function () {
  $sizes = [
    'xs'  => 'width <= 576px',
    'sm'  => '576px < width <= 768px',
    'md'  => '768px < width <= 992px',
    'lg'  => '992px < width <= 1200px',
    'xl'  => '1200px < width <= 1400px',
    'xxl' => '1400px < width',
  ];

  $css = '';

  foreach ($sizes as $size => $condition) {
    add_shortcode("my_br_{$size}", function () use ($size) {
      return "<br class=\"my-br-{$size}\">";
    });

    $css .= ".my-br-{$size}{display:none;}";
    $css .= "@media ({$condition}){";
    $css .= ".my-br-{$size}{display:block;}";
    $css .= "}";
  }

  $handle = 'responsive-br';

  wp_register_style($handle, false);
  wp_enqueue_style($handle);
  wp_add_inline_style($handle, $css);
});

さいごに

今回紹介した方法を使えば、SWELLのように、PC とモバイルで異なる位置に改行を入れることが可能になります。
レスポンシブ対応が必要な記事レイアウトや、読みやすさを意識したデザインを実現するのに便利です。

タイトルとURLをコピーしました