親テーマのfunctions.phpで定義した処理で必要な処理だけを子テーマで有効化する。
functions.phpは子のfunctions.php ⇒ 親のfunctions.phpの順で読み込まれる[1]。after_setup_themeはコールバック関数の処理を親のfunctions.phpを読み込んだ後に実行する[2]。
親テーマでクラス化した機能を子テーマのfunctions.phpでafter_setup_themeを使って有効化する簡単な例。
wp-content
|
|-- themes
|-- parent
| |-- style.css
| |-- index.php
| |-- functions.php
|
|-- child
|-- style.css
|-- index.php
|-- functions.php
親テーマのfunctions.php。
<?php // 子テーマで選択して利用する処理のクラス
class MyBuiltIn {
public static function enableSidebar () {
/**
* Widget
*/
register_sidebar(
array('name' => 'widget')
);
}
}
// ....................
// 親テーマの処理
// ....................
?>
子テーマのfunctions.php。after_setup_themeを使って利用する機能を有効化。
» WordPress, 親テーマfunctions.phpのaction, filterを子テーマでremove | beginsprite log
[1] functions.php
style.css と違い、functions.php は同名ファイルでオーバーライドできません。その代わり、親の functions.php に追加して読み込まれます。正確にいうと、親テーマの functions.php の直前に読み込まれます。したがって、もし親テーマの functions.php で favicon_link() という関数があるとき、子テーマのfunctions.php で同名の関数があれば、子テーマの関数が使用されます。
» 子テーマ – WordPress Codex 日本語版
[2]読み込み順を変更するわけではない。
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。