从wordpress检索用户 - > ID到另一个php站点

时间:2017-07-11 15:05:35

标签: php wordpress

我在custom_appli中有一个PHP应用程序/var/www/httpdocs。 Wordpress安装在/var/www/httpdocs/new_cms/wordpress

中的同一台服务器上

我需要使用user->ID的{​​{1}}来检索SESSION

我试图插入:

custom_appli
无论我使用 require( './new_cms/wp-snapshots/wp-blog-header.php' ); global $user; $user = wp_get_current_user(); echo "ID :".$user->ID; 还是wp-load,写wp-blog-header代替include都不会改变任何内容。

您能否就如何从require_once获取用户给我一个链接或建议? 提前致谢

2 个答案:

答案 0 :(得分:0)

详细信息和信息很少,但我会这样做(我知道5种方法,这些方法最不痛苦):

如上所述,wp_get_current_user()会让您关闭,但这通常只能在用户的页面上使用,就像在“on load”中一样。因此,从WP服务页面,您可以获得用户ID(以及所有其他信息)和会话,并拥有可用的内容。有很多方法可以使用这些数据来解决您的问题,而不是一直非常流畅。会话数据是以太网,请注意。

另一种方法是使用wp-load.php并将其包装在中间件中。这个脚本引导WP并允许在“bootstrapped”wordpress环境中提供应用程序内部API的查询和类似操作。我会考虑以“正确的方式”向custom_appli添加wp-load,并将其用作2个应用程序之间的中间件。在许多情况下,您仍需要识别用户。

如果没有更多信息,很难指导您,但我可以根据您的需求和帖子中已经设置的代码来确定可能出现的依赖关系问题,可能的名称间距冲突($user是可能会让你成为一个全球性的东西,以及无数其他方式来消磨时间。如果custom_appli需要用户ID,请在页面加载时从WP发送用户或类似用户ID。

何时/为什么需要这些信息?流程是什么?

您也可以通过会话ID信息遍历很多(取决于配置)。

FWIW我已经从不同服务器上的2个独立应用程序成功传递了用户信息,这很难正确完成,但它是可能的。

澄清后更新

如前所述,“wordpress-user和cusstom-appli具有相同的用户”可能是功能的复制,特别是运行2个表(?)或逻辑。只是一些反馈。

基本上你想挂钩WP用户的“登录”状态。我没有提到:

  • 建立在用户身上的FK /关系(简单但多做一点工作)
  • 自定义应用的基于ACL /权限的访问
  • 没有序列化数据或类似于WP用户(一般用户)

以上任何一项都可能让我改变解决方案。这是我为你写的一个非常干净的原型that is about 15 lines of code

它遵循wp的一些代码,基本上是:

  • 确保通过主题functions.php
  • 初始化PHP会话
  • 使用WP登录(身份验证)成功将var添加到会话
  • 注销时取消设置var(!重要!)
  • 还确保未登录时设置会话或密钥不存在
  • 通过会话(custom_appl.php)
  • 很容易在WP之外接听

我测试了这个并且在我的一个安装上它在本地工作正常,我没有看到任何理由为什么它会给你带来问题。我会更加强调这一点,但这只是一个展示如何使用PHP和WP中的关键工具的原型。

答案 1 :(得分:-1)

wp_get_current_user()是wp-includes / pluggable.php中的一个函数,由wp-settings.php加载。我不确定WordPress究竟是如何引导自己的,但是如果有的话,我会尝试包含 wp-settings.php