[英]Passing Wordpress objects from parent to popup child using PHP SESSION
我正在使用$ _SESSION变量将一个WP对象(即WP_User)从Wordpress站点传递到弹出窗口。
弹出窗口打开时,我var_dump($_SESSION['variable']['WP_Users'])
,一切看起来都不错。
但是,当我尝试访问$_SESSION['variable']['WP_users'][0]->data->parameter
,所有值都为NULL。
除此之外,error_log说:
“main():脚本尝试执行方法或访问不完整对象的属性。请确保在调用unserialize() 之前加载了您尝试操作的对象的类定义”WP_User“或提供了__autoload()函数在/ ABSPATH /popup_template.php第52行加载类定义“
据我所知,我的弹出窗口没有WP类的定义,比如WP_User等,因此我无法操作WP对象。
关于如何解决这个问题的任何想法? (请记住,我根本不使用(un)serialize())
所以解决方案实际上非常简单:我必须做error_log
问的问题。
在父窗口中,我必须序列化Wordpress对象的数组,然后将它们推入SESSION var,如下所示:
$_SESSION['variable'] = serialize( $array_of_WP_objects );
在我的弹出模板中,我不得不从wp_includes文件夹中添加WP_User
定义,然后将我的数组反序列化为$array_of_WP_objects
就像这样
require_once( '../../../../wp-includes/class-wp-user.php' );
$array_of_WP_objects = unserialize( $_SESSION['variable'] );
工作就像一个魅力。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.