在主题中扩展核心类的最佳方式?

时间:2013-08-19 作者:Vincent Wasteels

我需要向我的WP\\u用户对象添加函数,如下所示:

<?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\\u Post/WP\\u User…)的最佳方法是什么?

还有:这是一个好主意,还是有更好的方法来实现这一点(使用对象编程)?

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

您所做的将起作用,并且就PHP而言是正确的。

这是否是一个好主意实际上取决于你正在做什么,特别是你是否能用hooks-- 而是操作和筛选器。如果你可以用钩子来做,你可能应该这样做,但你的问题没有足够的细节来真正给出一个好的答案。

我不认为扩展核心类必然是“错误的”,但您可以为自己设置比正常维护更高的维护,因为如果父类这样做,您的扩展类可能需要更改,所以请注意。它是"fragile base class" 问题

这不是真的"overloading", 顺便说一下,在PHP中“重载”is not really that anyway.

结束

相关推荐

就多站点的wp-config.php if语句征求您的意见

我正在尝试将if语句写入wp config。php仅启用define(\'WP\\u DEBUG\',true);如果它不是WordPress多站点安装中的主站点。我只是不知道我可以从配置文件中调用多少WordPress codex函数。正在思考if ( is_main_site($blog_id) ) { define(\'WP_DEBUG\', false); } else { define(\'WP_DEBUG\', true); } 但我想我