web-dev-qa-db-ja.com

テーマでコアクラスを拡張するための最良の方法は?

このように使用するには、WP_Userオブジェクトに関数を追加する必要があります。

<?php
// in my templates :
$user = new User($id);
$user->sendHelloWorldEmail();

// in my functions.php
class User extends WP_User {
    public function sendHelloWorldEmail(){
        // do stuff ...
    }
}

私の質問は:コアクラスをオーバーロードするための最善の方法は何ですか(WP_Post/WP_User ...)?

そして、それは良い考えでしょうか、それとも(オブジェクトプログラミングで)これを達成するためのより良い方法はありますか?

3

あなたがしていることはうまくいくでしょう、そしてPHPが行く限り正しいです。

それが良い考えであるかどうかは、実際にあなたがしていること、特にフックでそれができるかどうかにかかっています - アクションとフィルタ - 代わりに。あなたがフックでそれをすることができるならばあなたはおそらくそうすべきですがあなたの質問は本当に素晴らしい答えを可能にするほど十分な詳細を持っていません。

コアクラスを拡張することが必ずしも「間違っている」とは思いませんが、親クラスが変更された場合は拡張クラスを変更する必要があるかもしれないので、通常のメンテナンスよりも高いレベルに設定できます。その 「壊れやすい基本クラス」 の問題。

ちなみに、これは本当に "オーバーロード" ではなく、PHP "オーバーロード" とにかく本当にそうではありません

2
s_ha_dum