Wp_SignOn返回用户,但用户未登录,因为wp安装在子域上。如何让它发挥作用?

时间:2012-11-20 作者:Murat

我正在使用WordPress API获取用户登录。我的代码:

<?php
define(\'WP_USE_THEMES\', false);
require(\'wp-blog-header.php\');

$creds = array();
$creds[\'user_login\'] = \'user\';
$creds[\'user_password\'] = \'password\';
$creds[\'remember\'] = true;
$user = wp_signon( $creds, false);
if ( is_wp_error($user) )
   echo $user->get_error_message();

$cookie = wp_set_auth_cookie($user->ID); ?>
这些代码正在我的主域上运行www.mydomain.com但我安装了wordpressblog.mydomain.com

我认为这是一个饼干问题。我在子域上测试了上述代码,并让用户登录。

那么我该如何解决这个问题呢?

P、 s:包含“wp blog header.php”没有问题

2 个回复
SO网友:Murat

我解决了这个问题。这是解决方案。

将此行添加到wp配置中。php:

define(\'COOKIE_DOMAIN\', \'.yourdomain.com\');
保存文件并上载。仅此而已。

SO网友:Shalu Shaji

参观Cookie settings for session across WPML subdomains using custom AJAX login我想您必须将子域添加到allowed_http_origins 筛选器还检查请求URL必须来自博客。mydomain。com和请求来源和引用。

结束

相关推荐

使用HTTP API的服务器代码响应不一致

我正在使用Wordpress http api 从youtube api获取服务器响应代码,以便检查视频的有效性。我在我的函数中的函数中执行此操作。php处理我的帖子表单,我在这里收集youtube视频的url。问题是我得到的回应不一致,因为有效的视频偶尔会返回403。现在,我还使用jquery检查前端的有效性。ajax()使用相同的youtube api请求,并且在所有情况下都能正常工作。因此,视频将使用youtube api和jquery进行验证,然后有时使用php方法返回403。那么这里的问题是什么