やっぱり functions.php 上書きに行きつく


iconic-oneWordPress テーマを Iconic One に変えてみた。テーマを変えるだけならほんとに簡単。見た目もきれいで高機能なテーマが簡単に使えるのはすばらしい。

でも、既存のテーマのカスタマイズは、そのテーマの「設定」からアクセスできるもの以外は、けっこうむずかしい。表示される要素をコントロールしている記述の多くが functions.php のなかにあるのに、このファイルを子テーマに入れておいても親テーマの functions.php を上書きしない、という制約がカスタマイズをさまたげる。

「なんかむずかしいみたいだな」と気づいたら、そこでやめて他の設定に行く、あるいは他のテーマに行く、というのが普通かもしれないけど、昨日もぶちあたった functions.php の壁に、今日も出会ってしまった。こう繰り返しこの壁に出会うのであれば、もう少し掘り下げておいたほうがいいんじゃないか、ということでさらに検索。それにしても WordPress 普及の結果、どっかに答えがあるもんですね。

そういう状況なので、自分で考えてもどうせムダ、ひたすら検索に走るというパターンになってきてるかもしれない。あまり考えないのはよくないとは思うんですが。

Iconic One のサムネイル画像のサイズを変更

今回やろうとしたのはコレです。Iconic One の設定では 200 x 140 ピクセル。でもサムネイル画像として WordPress のデフォルトのサムネイルサイズの 150 x 150 が使いたい。縦横で小さいほうのサイズの 140 に合わせて縮小表示されるのが気に食わない。

サムネイル画像サイズは functions.php で記述されている、ということは、functions.php の上書き案件なわけです。

親テーマの functions.php そのものを書き換えてしまう、という方法もあるけれど、以前にちょっとだけ手を出した WordPress にあらためて触れるにあたって、推奨されているとおりに「子テーマを作ってカスタマイズ」路線でまだやってます。

で、検索して出てきた答えは これ。子テーマに設定を記述したあと、これを有効にする部分の優先順位を低くして(ここでは 11 で親テーマの 10 より優先順位が下)、親テーマの同じ設定より後に読み込まれるようにするのがキモのようです。この情報に従って記述したコードはこんな感じ。

function text_setup() {
    add_image_size( 'excerpt-thumbnail', 200, 150, true );
}
add_action( 'after_setup_theme', 'text_setup', 11 );

というわけで、ひとつ問題が解決したので、小さな達成感にひたっています。

Thank you for reading!

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です