我正在尝试学习如何为我正在开发的桥接插件解释print\\r的结果。
Background
我的第一个问题是
setting editor capabilities receiving administrator capabilities. 在工作中,我意识到
only the first two capabilities in the array were being added. 现在已修复此问题。然而
Moving Forward
现在,我开始返回并查看正在进行的调用,以及在wp\\u die、var\\u dump和print\\r中插入的调用,以查看结果是否符合预期。
现在问题来了。The results are not as expected and maybe someone can explain why.
The Code
文件包含函数get\\u userdata($user\\u id)。在此文件中,检查is\\u numeric、empty和if$user\\u id返回false。下一步,如果$然后,用户调用一个类,该类的方法称为fillUserData。
fillUserData如下所示:
public static function fillUserData($visitor, $classObj, $user_id) {
if( $user_id != 0 ) {
global $XF;
$userModel = $XF->getModelFromCache(\'XenForo_Model_User\');
$user = $userModel->getUserById($user_id, array(\'join\' => XenForo_Model_User::FETCH_USER_FULL));
$classObj->userObj = $user;
echo \'<pre>\';
echo $user_id;
print_r( $classObj->userObj[username] );
echo \'</pre>\';
//die();
if( $user_id == $visitor->get(\'user_id\') ) {
// doing stuff
return $classObj;
} else {
// doing stuff
return $classObj;
}
}
// return false;
echo \'This is a mess\';
}
在这一点上,我感到困惑。我希望只返回一个数组。但在主题中返回了几个主题(包括默认主题等)。
第一个显示在主题的左上角,这绝对是我所期望的。[更新:澄清一下,此阵列绝对是为当前登录的用户提供的]
Array
(
[user_id] => 3
[username] => Albert
[email] => albert@tuxreports.com
[gender] =>
[custom_title] =>
[language_id] => 1
[style_id] => 0
[timezone] => Europe/London
[visible] => 1
下一篇文章位于其他用户完成的第一篇文章上方。这完全不是我所期望的。[更新:即使没有人登录该站点,此数组也会显示]
Array
(
[user_id] => 1
[username] => LPH
[email] => lph@tuxreports.com
[gender] =>
[custom_title] =>
[language_id] => 1
[style_id] => 0
[timezone] => Europe/London
[visible] => 1
[user_group_id] => 2
这些数组将返回到另一个用户所做的另一篇文章上方。。。。而不是我所期望的,因为有一个if
( $user_id != 0 )
有条件的
如果我进入一个页面,那么打印显示的是文章的作者,而不是我登录的用户。。。
My question are:
我是否使用了$classObj->userObj=$user错误?为什么WordPress博客文章的作者会在print\\r中显示,而$user conditional建议不应该显示?
希望这是足够的信息,有人可以向我解释为什么这没有按预期工作。我的知识很薄弱(充其量)。当然,如果我不应该在可插入函数中调用该类,那么请建议一个更好的方法。
非常感谢。