この記事では、theme.jsonで横幅を設定する方法について解説しています。
theme.jsonを追加したら、ブロックが全て横幅いっぱいに表示されてしまった人・エディタとフロント側の表示がずれてしまう人はぜひご参考ください。
目次
settings.layout
横幅を設定するには、settings.layoutの項目を指定する必要があります。
{
"$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 3,
"settings": {
"layout": {
"contentSize": "800px",
"wideSize": "1200px"
}
}
}
theme.jsonプロパティ解説
- contentSize:ブロック生成されるときに指定されるデフォルトの値
- wideSize:幅広サイズ
生成されるcssは以下のとおりです。
:root {
--wp--style--global--content-size: 800px;
--wp--style--global--wide-size: 1200px;
}
CSStheme.jsonの設定を追加することで、WordPressのエディタに設定が反映されますが、フロント側は自分でスタイルを記述する必要があります。
この設定方法は、人によってそれぞれのため以下のコードはサンプル程度にご参考ください。
.wrapper > * {
max-width: calc(var(--wp--style--global--content-size) + 30px);
margin-left: auto;
margin-right: auto;
padding-left: 15px;
padding-right: 15px;
}
.wrapper > .alignwide {
max-width: calc(var(--wp--style--global--wide-size) + 30px);
}
.wrapper > .alignfull {
max-width: 100%;
padding-left: 0;
padding-right: 0;
}
CSS最大幅を30px広げている理由
フロント側で「box-sizing: border-box」を適用させているため、左右の余白分だけ広げています。
これを行わないと、エディタとフロントで若干表示のズレが発生します。
ここまで設定を行うと、エディタとフロント側の表示が同じになります。