私が見た多くのテーマ(TwentyElevenを含む)とオンラインで見つけた例ではfunctions.php
、テーマのファイルを作成すると、すべての機能がグローバルスコープで宣言されます。明確にするために、これは一般的な関数ファイルは次のようになります。
function my_theme_do_foo() { // ... }
function my_theme_do_bar() { // ... }
add_action( 'foo_hook', 'my_theme_do_foo' );
クラスが使用された場合、物事は少し「カプセル化」できるように思えます。
class MyTheme {
function do_foo() { // ... }
function do_bar() { // ... }
}
$my_theme = new MyTheme();
add_action( 'foo_hook', array( &$my_theme, 'do_foo' ) );
(私の謙虚な目で)2番目のアプローチの利点:
- 短い関数名
- インスタンス変数へのアクセス(最大の利点IMO)
- グローバル機能なし
欠点:
- クラス名は依然として競合を引き起こす可能性があります
- 子テーマで「カスタマイズ」することはそれほど明確ではありません(親クラスを拡張する必要があります)
- ほとんどのテーマはこのようにしていないので、あなたはトレンドに逆らうでしょう
いくつか見落としているかもしれませんが、なぜOOPアプローチをとらないのでしょうか。どちらかといえば、私には少し「きれい」に感じます。たぶん私は間違っていますか?
私はWordPressテーマ開発にかなり慣れていないので、これがWPコミュニティの一般的な知識であるかどうかはご容赦ください:)。なぜ物事がそうであるのかを理解しようとするだけです。