我开发了一个插件(尽管理解不多),它取代了可插入功能get_user_by
从另一个源提取用户数据。虽然这是可行的,但只要有一个新的WP版本更改了可插拔功能,就可以进行维护。我通过get\\u avatar了解到,最好是过滤而不是替换。
是否有过滤方法get_user_by
而不是替换它?
例如,像下面这样使用add\\u过滤器似乎不起作用。
Class XenWord_Login {
public $visitor;
public $user_id;
public $current_user;
public function __construct() {
add_filter( \'get_user_by\', array( &$this, \'getUserData\' ) );
}
function getUserData() {
$visitor = XenWord::getVisitor();
$user_id = $visitor[\'user_id\'];
$current_user = $visitor;
$userdata = XenWord_XFUserData::xf_user_data( $visitor, $current_user,
$user_id );
if ( ! $userdata ) {
return false;
}
$user = new WP_User;
$user->init( $userdata );
return $user;
}
}
$login = new XenWord_Login();
以上只是尝试过滤而不是替换的测试代码。有更好的方法吗?