WordPressテーマのfunctions.phpでは$content_widthを定義するべし

こそこそとテーマの勉強をしている今日この頃ですが、Codexを色々と漁ってるううちに発見したTipsをご紹介します。

以前に紹介した記事の中でテーマユニットテストについて触れましたが、それに関連するページを眺めていると、「$content_width を定義してね」みたいな記述がちらほらと出てくることに気が付きました。

さっそく、twentyelevenのソースを見てみると、functions.phpに以下のような記述があります。

/**
 * Set the content width based on the theme's design and stylesheet.
 */
if ( ! isset( $content_width ) )
    $content_width = 584;

色々調べてみると、この$content_widthにはテーマのメインコンテンツの表示領域の横幅を入れる必要があるみたいです。

さっそく、自前テーマに仕込んで見ました。とりあえず今回は600pxです。

functions.php

if ( ! isset( $content_width ) )
    $content_width = 600;

試しに画像をアップロードしてみると…。

ちなみに$content_widthが定義されていない状態では…。

WordPress管理画面の[設定]-[メディア]では、画像のサイズを大中小でそれぞれ設定できるんですが、テーマに$content_widthを定義すると、この値を上書きするようです。

こうすることで、設定に関係なくテーマに最適な横幅の画像を自動的に生成することができるんですね。

それなら$content_widthをデフォルトで表示して変更できないようにしてくれよって気がしないでも無いですが、いちおうテーマでは必ず定義しようねって事になってるようです。