標準テーマのfunctions.phpはいじらずに子テーマを作る

このサイトをWordPressに移行する際、標準テーマがなかなかよかったのでそのまま使っていたんですが、色々と細かい機能が欲しくなるわけです。そうすると必然的にテーマのfunctions.phpをいじることになります。

が、これ、やってはいけませんね。なんでかというと、自動アップデートすると、functions.phpに加えた変更が全て消えるからです。実際にやってしまって、今までの作業が水の泡になって泣きました。

というわけで、そうならないようにするにはどうしたら良いかというと、プラグインを自前で作るか、テーマを自作する事になると思いますが、よく良く調べてみると、テーマには「子テーマ」というのが作れるようなんですね。

子テーマをつくると、親テーマに対して機能を拡張したり、動作やスタイルを変更したりすることができます。変更しない部分は親テーマのものを引き継ぐことができます。つまり、functions.phpをいじるようなことをするなら、子テーマを作って、変更する部分だけを子テーマのfunctions.phpに書けばいい、ってことですね。こうすれば、自動アップデートしても消えないようになります。ということで、やってみました。

やり方は非常に単純。style.cssと、functions.phpを適当なフォルダに入れてzipして、管理画面からアップロードするだけです。style.cssのヘッダー情報に

Template:       twentyten

って感じでTemplate:行を加えるだけで、twentytenテーマの子テーマになります。結局、style.cssはこんな感じにしました。

/*
Theme Name: effy.jp default theme
Author:     Toshio Koide
Template:   twentyten
*/

@import url('../twentyten/style.css');

これだけです。で、functions.phpに書きたかった関数群を書いて、無事動かせました。functions.phpに何を書いたかは、「スラッグを使ってリンクを貼る」のエントリで。

参考:http://codex.wordpress.org/Child_Themes