WordPressの自作テーマで画像が寄らない原因と対策
WordPressのエディタには色々と便利な機能が入っています。
しかし、画像の左・中央・右寄せはデフォルトでは機能しません。
CSSにコードを追加する必要があります。
テーマを作成するときに忘れがちなので気をつけましょう。
![]()
↑CSSを記述しないと押しても何も変わらない
ネイティブCSSを指定する
画像の配置を指定すると、imgタグにClassが追加されます。
- 左:alignleft
- 中央:aligncenter
- 右:alignright
これらのclassに対してCSSを記述しましょう。(僕はSassで書いています)
エディタによって追加されるclassに関するCSSを「ネイティブCSS」と呼ぶようです。
/* img */
.aligncenter {
display: block;
margin: 0 auto;
}
.alignright { float: right; }
.alignleft { float: left; }
.alignright, .alignleft {margin: 8px;}
img[class*="wp-image-"],img[class*="attachment-"] {
height: auto;
max-width: 100%;
}
/* clearfix */
.clearfix {
overflow: hidden;
zoom: 1;
&:after {
content: "";
display: block;
clear: both;
}
}画像関連のネイティブCSSです。
左寄せ・右寄せはfloatを使って指定します。
floatを使うのは文字を回り込ませるためです。
画像と文字の間が詰まらないように、左右にマージンを設定しています。
回り込みを行わない場合はブロック要素にしてマージンを指定しましょう。
.alignright {
display: block;
margin-left: auto;
}
.alignleft {
display: block;
margin-right: auto;
}

HTML5でブロック要素は廃止されてるので、厳密には意味が違うかもしれません。display: block;を指定した要素のことをなんて表現すればいいのでしょうか?
floatを設定したら、解除しなければいけません。
親要素に対してclearfixのスタイルを定義します。
clearfixに関しては以下のサイトを参考にさせていただきました。
WordPress テーマ作成時には必ず指定しておきたいネイティブCSS
ファイルを分割して管理する
ネイティブCSSはWordPressでテーマを作成する際、必須と言っていいでしょう。
使い回しやすいようにstyle.cssとは別のファイルに分割しておきます。
ですが、CSSファイルを分割すると読み込み速度が落ちてしまいます(誤差の範囲ですが)。
そこで便利なのがSassです。
SassとはCSSの上位互換のようなものです。
Sassはファイルが複数になっても、CSSファイルにコンパイルする際1つのファイルになります。
CSSでしか書いたことがない方はSassも勉強するといいでしょう。
CSSをプログラムのように書けるようにしたものなので、プログラミング経験者はすんなり理解できるはずです。