WordPress老人から脱却!vol:08 CSSでテーマをデザイン!グーテンベルクのブロックをカスタマイズする方法

グーテンベルクブロックのカスタマイズの必要性

WordPressがグーテンベルクエディタを導入したことで、従来の「クラシックエディタ」とは異なる、よりビジュアルで直感的なブロックベースの編集が可能になりました。

この進化により、個々のブロックごとにデザインと機能をカスタマイズし、テーマ全体の一貫性を保ちながらも、ユーザーごとに最適化されたデザイン体験を提供することが可能です。

特に、WordPressテーマの開発において、CSSでグーテンベルクブロックの見た目を細かくカスタマイズすることは、サイトの個性を引き出すために重要です。

デフォルトのスタイルでは対応できない場合が多く、たとえばボタンや見出しのデザイン、コンテンツの配置など、細かな部分までコントロールすることで、より洗練されたデザインが実現できます。

また、CSSによるカスタマイズは、エディタ上での表示とフロントエンドでの見た目を一致させるためにも役立ちます。

グーテンベルクのカスタマイズを通じて、ユーザーはエディタ上でデザインの変化をリアルタイムで確認できるようになり、デザインプロセスの効率も向上します。

このように、グーテンベルクブロックのCSSカスタマイズは、単なる見た目の向上だけでなく、ユーザーエクスペリエンス全体の改善にも繋がります。

基本的なCSSのセットアップ

グーテンベルクブロックのカスタマイズを始める際、まず基本的なCSSのセットアップが重要です。

テーマのデザインと一貫性を持たせるため、テーマのカスタムCSSをグーテンベルクのエディタに適用し、エディタ内でブロックがフロントエンドと同じように表示されるようにすることがポイントです。

まず、style.css ファイルを用意し、全体のスタイル設定やテーマの基本デザインを記述します。

このファイルは、テーマ全体の一貫したデザインを管理するものであり、特定のフォント設定、カラー、マージン、パディングなどを定義します。

また、グーテンベルクエディタ内でも同じスタイルが反映されるようにするため、editor-style.css を追加して add_theme_support( ‘editor-styles’ ); を有効にし、add_editor_style() 関数を使用してエディタにカスタムスタイルを適用します。

これにより、ユーザーがブロックを追加・編集する際に、エディタとフロントエンドのスタイルが一致し、デザインのイメージがしやすくなります。

たとえば、以下のような手順でエディタスタイルを適用します。

  1. テーマのスタイルをエディタに適用:add_theme_support(‘editor-styles’); と add_editor_style(‘editor-style.css’); を使って、テーマのCSSをエディタでも利用可能にします。
  2. グローバルスタイル設定:テーマ全体の共通スタイルをstyle.cssに記述し、エディタでも使用される基本的なフォントや色などを設定します。
  3. ブロックごとのスタイル設定:特定のグーテンベルクブロックのデザインをCSSでカスタマイズするために、.wp-block-[ブロック名] のようにブロック専用のクラスを指定して、詳細なスタイルを付与します。

このような基本セットアップを行うことで、グーテンベルクのブロックエディタとフロントエンド表示の一貫性を保つことができ、デザインのズレや使い勝手の問題を最小限に抑えることができます。

グーテンベルクのテーマサポート設定

グーテンベルクに対応したテーマを作成する際、テーマサポート設定は不可欠です。

グーテンベルク(ブロックエディタ)では、テーマで利用する機能を適切にサポートすることで、ブロックエディタとフロントエンドのスタイルが一貫し、エディタ上での見た目と実際のウェブサイト表示が一致するようになります。

これにより、デザイナーやエディターがスムーズに編集できるようになるため、テーマ開発の段階でしっかりと設定しておきましょう。

主なテーマサポート設定の例

1. エディタスタイルの適用

add_theme_support(‘editor-styles’)を使用することで、グーテンベルクエディタにもテーマのスタイルを適用できます。

これにより、エディタ内でブロックがフロントエンドと同様のスタイルで表示されるようになり、リアルタイムで確認がしやすくなります。

2. 幅の設定

コンテンツの幅を調整するためにadd_theme_support(‘align-wide’)を追加します。

これにより、画像やテキストブロックで「全幅」や「幅広」のオプションが有効になり、より自由なレイアウトが可能です。

また、add_theme_support(‘editor-color-palette’)などでカスタムカラーパレットを設定すると、ブランドカラーを統一してデザインできます。

3. フォントサイズのカスタマイズ

add_theme_support(‘editor-font-sizes’)を使うことで、グーテンベルクエディタ内で利用可能なフォントサイズをカスタマイズ可能です。

これにより、テーマ全体でのフォントの統一が図れるだけでなく、ユーザーが簡単にカスタムサイズを適用できます。

4. レスポンシブサポート

add_theme_support(‘responsive-embeds’)を設定することで、エディタ内で使用する埋め込みコンテンツ(YouTubeやTwitterなど)がレスポンシブ対応になり、モバイルデバイスでも適切に表示されます。

設定のコード例

テーマのfunctions.phpに以下のコードを追加して、グーテンベルクの基本サポート設定を行います。

PHP
function mytheme_setup() {
    // エディタースタイルの有効化
    add_theme_support('editor-styles');
    add_editor_style('editor-style.css');

    // 幅広・全幅のサポート
    add_theme_support('align-wide');

    // カスタムカラーパレット
    add_theme_support('editor-color-palette', array(
        array(
            'name'  => __('Primary', 'mytheme'),
            'slug'  => 'primary',
            'color' => '#333333',
        ),
        // 他の色も設定可能
    ));

    // カスタムフォントサイズ
    add_theme_support('editor-font-sizes', array(
        array(
            'name' => __('Small', 'mytheme'),
            'size' => 12,
            'slug' => 'small'
        ),
        array(
            'name' => __('Large', 'mytheme'),
            'size' => 36,
            'slug' => 'large'
        ),
    ));

    // レスポンシブ対応
    add_theme_support('responsive-embeds');
}
add_action('after_setup_theme', 'mytheme_setup');


この設定によって、グーテンベルク対応テーマはより柔軟かつ直感的に使いやすくなります。

各ブロックのCSSカスタマイズ

各ブロックに対するCSSカスタマイズを行うと、グーテンベルクのデフォルトブロックがテーマ全体のデザインと調和し、ユーザーが視覚的に統一されたページを作成しやすくなります。

ここでは、各ブロックのスタイルをカスタマイズする際のポイントと、具体的な方法を説明します。

各ブロックに個別のスタイルを適用する方法

グーテンベルクのブロックには、段落、見出し、画像、ボタンなど、さまざまな基本ブロックが用意されています。

各ブロックにCSSを適用するには、ブロック固有のCSSクラスを利用します。

例えば、段落ブロックには.wp-block-paragraph、見出しブロックには.wp-block-headingといったクラスが自動的に付与されています。これにより、特定のブロックに対してターゲットを絞ったスタイルを適用できます。

例:段落と見出しブロックのカスタマイズ

以下は、段落ブロックと見出しブロックに対して異なるスタイルを適用する例です。

CSS
/* 段落ブロックのスタイル */
.wp-block-paragraph {
    font-size: 16px;
    line-height: 1.8;
    color: #333;
}

/* 見出しブロックのスタイル */
.wp-block-heading {
    font-family: 'Roboto', sans-serif;
    font-size: 2em;
    color: #0056b3;
    margin-bottom: 1em;
}

ボタンブロックのカスタマイズ

ボタンブロック(.wp-block-button)は、サイトのデザインに合わせたカスタマイズが重要です。

以下のコードでは、ボタンの背景色、テキストカラー、ホバースタイルを設定します。

CSS
/* ボタンブロックのスタイル */
.wp-block-button .wp-block-button__link {
    background-color: #007bff;
    color: #fff;
    padding: 12px 24px;
    border-radius: 5px;
    text-decoration: none;
    transition: background-color 0.3s;
}

.wp-block-button .wp-block-button__link:hover {
    background-color: #0056b3;
}

このように、ホバースタイルも設定しておくと、ユーザーインタラクションが向上します。

画像ブロックのレスポンシブ対応

画像ブロックには.wp-block-imageが適用されており、テーマに応じてレスポンシブ対応が重要です。

以下は、画像ブロックにおいて、幅が100%を超えないようにしつつ、画面サイズに合わせて画像サイズを調整する例です。

CSS
/* 画像ブロックのスタイル */
.wp-block-image img {
    max-width: 100%;
    height: auto;
    border-radius: 8px; /* 角丸を追加 */
}

カスタムクラスを使った応用的なスタイル

グーテンベルクではブロックごとにカスタムクラスを設定できるため、個別の要素に対して高度なデザインを行うことも可能です。

例えば、段落ブロックにspecial-textというクラスを追加し、強調表示のスタイルを適用することができます。

CSS
/* カスタムクラスを利用した段落の特別スタイル */
.special-text {
    font-size: 18px;
    font-weight: bold;
    color: #e74c3c;
    background-color: #fce4ec;
    padding: 10px;
    border-left: 4px solid #e74c3c;
}

各ブロックのCSSカスタマイズまとめ

このように、各ブロックに対するCSSカスタマイズを行うと、デザインに統一感が生まれ、エディタ上での見た目も向上します。

また、カスタムクラスやレスポンシブデザインを活用することで、さらに自由度の高いデザインが可能です。

エディタスタイルとフロントエンドスタイルの一致

エディタスタイルとフロントエンドスタイルの一致は、グーテンベルクを使ってWordPressテーマをカスタマイズする際に非常に重要なポイントです。

エディタでの見た目がフロントエンド(実際に公開されるページ)と一致していると、ユーザーが編集画面で見た内容がそのままフロントエンドに反映されるため、視覚的な混乱を避け、スムーズな制作体験を提供できます。

この整合性を実現するための主なステップとポイントを解説します。

エディタスタイルの読み込み

エディタスタイルは、add_theme_support( ‘editor-styles’ );とadd_editor_style( ‘editor-style.css’ );関数を使用してWordPressテーマに追加できます。

これにより、editor-style.cssというCSSファイルをエディタ専用に読み込ませ、フロントエンドと同じスタイルを反映させることが可能です。

このファイルには、フロントエンドと同じCSSコードを適用し、ブロックエディタ内の各ブロックが実際に公開されるデザインと一致するようにスタイリングします。

PHP
// テーマのfunctions.phpに追加
function theme_editor_styles() {
    add_theme_support( 'editor-styles' );
    add_editor_style( 'editor-style.css' ); // エディタ専用のスタイルシート
}
add_action( 'after_setup_theme', 'theme_editor_styles' );

エディタスタイルとフロントエンドスタイルの一貫性

エディタスタイルを設定する際には、フロントエンド用のCSSと同様のレイアウトやフォント設定、カラーなどを使用し、一貫したビジュアルを目指しましょう。

例えば、段落や見出しのフォントサイズ、行間、色をエディタでも同じように定義することで、実際の公開ページとエディタ上での表示が一致します。

また、theme.jsonファイルを使用すると、エディタとフロントエンドに対して共通の設定(フォントやカラーなど)を適用しやすくなります。

これにより、編集とプレビューがフロントエンドと一致し、ユーザーが「プレビュー」と「実際の見た目」の差異に悩むことが減ります。

注意点:エディタ専用スタイルとフロントエンドスタイルの区別

エディタスタイルには、エディタ内でしか見えない要素や、編集に役立つ補助的なスタイルも追加できますが、これらがフロントエンドには反映されないようにすることも重要です。

例えば、エディタ専用のガイドラインやアウトラインのスタイルは、ユーザーに編集の際の視覚的なサポートを提供しますが、公開ページでは不要です。

エディタスタイルとフロントエンドスタイルの一致まとめ

エディタスタイルとフロントエンドスタイルの一致を保つことは、WordPressテーマのユーザビリティを高め、エディタ内で見た通りの仕上がりを実現するための重要なステップです。

エディタとフロントエンドのスタイルを一致させることで、テーマの使い勝手と視覚的な一貫性が向上し、ユーザーにとって分かりやすいコンテンツ編集環境を提供できます。

カスタムCSSクラスの活用

カスタムCSSクラスを活用することで、グーテンベルクブロックやページ要素にさらに細かなスタイルを適用でき、WordPressテーマのデザインが柔軟に仕上がります。

カスタムCSSクラスを追加することで、特定のデザインやエフェクトを持つスタイルを簡単に適用できるため、制作や更新の際の作業効率も向上します。

カスタムCSSクラスの設定と使用

カスタムCSSクラスをグーテンベルクエディタで使用するには、ブロック設定の「高度な設定」から任意のクラス名を追加できます。

このクラスを追加することで、そのブロックに対してテーマのCSSファイルに設定した特定のスタイルを適用できます。

たとえば、強調するテキストを設定したい場合、「highlight-text」というカスタムクラスを追加し、CSSでそのスタイルを定義することで簡単に強調スタイルを適用できます。

CSS
/* カスタムCSSクラスの例 */
.highlight-text {
    background-color: #ffe599;
    color: #333;
    padding: 0.5em;
    border-radius: 4px;
}

このように、特定のスタイルをクラスにまとめておくことで、複数の場所に同じデザインを再利用でき、スタイルの一貫性を保ちながらコードのメンテナンスもしやすくなります。

カスタムCSSクラスを活用したデザインの拡張

カスタムCSSクラスは、ボタン、テキスト、背景色などに異なるバリエーションを持たせたい場合にも役立ちます。

たとえば、btn-primaryやbtn-secondaryといったクラスを用意し、異なるボタンデザインを適用することも可能です。

さらに、レスポンシブ対応のスタイルもクラスごとに定義することで、ブロックの表示をデバイスに応じて調整することができます。

CSS
/* ボタンのカスタムクラス */
.btn-primary {
    background-color: #0073e6;
    color: white;
    padding: 10px 20px;
    border: none;
    border-radius: 5px;
}

.btn-secondary {
    background-color: #ccc;
    color: #333;
    padding: 10px 20px;
    border: none;
    border-radius: 5px;
}

利便性と一貫性を保つためのコツ

カスタムCSSクラスを作成する際は、テーマ内で命名規則を統一し、他のクラス名と混同しないようにすることが重要です。

また、他のスタイルと競合しないよう、クラス名の命名には注意が必要です。プレフィックスを使用することで、テーマ専用のクラスと認識できるようにするのも有効です。

カスタムCSSクラスの活用まとめ

カスタムCSSクラスを適切に活用することで、テーマに柔軟性とデザインの統一感を持たせることが可能です。

これにより、エディタでのブロックカスタマイズが容易になり、WordPressテーマの編集性が向上します。

カスタムCSSクラスは、デザインに多様性を加えつつ、維持と管理の効率化にも役立つ重要なツールです。

実例:オリジナルのグーテンベルクブロックスタイルを作る

オリジナルのグーテンベルクブロックスタイルを作成すると、テーマの個性を引き出し、サイト全体のデザインに統一感を持たせることができます。

グーテンベルクは、ブロックごとに独自のスタイルを適用する柔軟性を持っており、簡単なCSS設定でスタイルをカスタマイズすることが可能です。

オリジナルスタイルの設定手順

1. スタイルの追加方法

まず、テーマの functions.php ファイルに、グーテンベルク用のスタイルシートを追加します。

これにより、エディタでカスタムスタイルをリアルタイムで確認できるようになります。

PHP
// エディタ用スタイルを読み込む
function my_theme_add_editor_styles() {
    add_theme_support('editor-styles');
    add_editor_style('editor-style.css');
}
add_action('after_setup_theme', 'my_theme_add_editor_styles');

2. CSSでスタイルをカスタマイズする

次に、エディタ用の editor-style.css ファイルを作成し、ここに各ブロックのカスタムCSSを記述します。

たとえば、見出しブロックやパラグラフブロックに特定のデザインを適用するには、以下のようにスタイルを指定します。

CSS
/* 見出しブロックのカスタムスタイル */
.wp-block-heading h2.custom-heading {
    color: #2c3e50;
    font-family: 'Arial', sans-serif;
    font-size: 24px;
    border-bottom: 2px solid #3498db;
    padding-bottom: 8px;
}

/* パラグラフブロックのカスタムスタイル */
.wp-block-paragraph.custom-paragraph {
    font-size: 18px;
    line-height: 1.8;
    color: #666;
}

3. グーテンベルクでカスタムスタイルを登録する

theme.json ファイルを利用することで、テーマにカスタムスタイルを登録し、ブロックスタイルの一覧から簡単に適用できるようにします。

たとえば、カスタムボタンスタイルを追加するには、以下のように設定します。

json
{
    "styles": {
        "blocks": {
            "core/button": {
                "settings": {
                    "color": {
                        "background": "#3498db",
                        "text": "#ffffff"
                    },
                    "border": {
                        "radius": "4px"
                    }
                }
            }
        }
    }
}

まとめと次のステップ

この記事を通じて、WordPressのテーマ開発におけるCSSの活用とグーテンベルクブロックのカスタマイズ手法について深く学びました。

CSSによる基本的なデザイン設定から、テーマカスタマイザーやカスタムCSSクラスを使った高度なスタイリング方法、さらにブロックエディタとの統合を通じて、ユーザーが直感的に使いやすいオリジナルのデザインテーマを作成するための重要な要素に触れました。

CSSとグーテンベルクのブロックカスタマイズを実装することは、単に見た目を整えるだけでなく、編集画面とフロントエンドのスタイルの一貫性を保つことにより、ユーザーエクスペリエンスを向上させる重要な役割を果たします。

次のステップ

今後のステップとしては、以下の進展をおすすめします:

  1. さらなるカスタムブロックの作成:オリジナルのブロックスタイルを増やし、テーマのユニーク性をさらに高めていきましょう。
  2. JavaScriptの活用:CSSと併せてJavaScriptを使用することで、ブロックのインタラクションをよりリッチにし、ユーザーにとって使いやすい機能を追加できます。
  3. アクセシビリティへの配慮:テーマが全てのユーザーにとって使いやすくなるよう、アクセシビリティの観点からデザインを見直してみましょう。

これらを積み重ねることで、WordPressテーマ開発のスキルをさらに向上させ、より高度なオリジナルテーマを提供できるようになるでしょう。

継続的に学び、実践を通じてスキルを深めていってください。