0

我正在尝试完成的背景...目前我已经在 Codeigniter 之上创建了一个迷你 CMS 来编辑一些用于 Web 应用程序的数据库内容。现在它没有密码保护,因为它仍在开发中。我想将它集成到我的 WordPress 安装中,这样我的客户就不必登录 CMSWordPress。

到目前为止我的位置是:

  1. 我创建了一个自定义 WP admin_menu(通过add_menu_page
  2. 我的 CMSiframe在管理菜单选项卡中可见/工作。

我现在需要做的是,如果用户被认证为 WordPress 管理员,则只允许访问这些 CMS 页面。

如果您想知道我的目录结构:

/ (Codeigniter installed on root)
/blog/ (WordPress Install)
/blog/cms/ (CMS that is talking to Codeigniter)

先感谢您!

更新:由于尚未在答案中回答,我需要知道如何在 WordPress 系统之外执行 WordPress 功能。

4

2 回答 2

3

您可能想使用WordPress 的current_user_can()功能来确认用户至少具有通常与管理员用户关联的一项功能,或者是该Administrator角色的成员。

根据该法典页面,这应该可以根据角色测试管理员,尽管我无法确认这一点抱歉。我过去肯定使用过这种方法来验证用户是否具有给定的能力。  

<?php current_user_can( 'Administrator' ); ?>

 编辑:要使用 WP 凭据向 WP 验证来自不同站点的用户,Wordpress.stackexchange 上的这个答案描述了如何使用 WP 的内置 XMLRPC 服务。答案是在从 servlet 进行身份验证的上下文中编写的,但是 WP XMLRPC 服务的消耗可以在客户端的 JavaScript 中实现(而不是在您的站点的两个独立后端之间),因此在您的场景中可能更有用。

答案包括一个预先编写的插件,用于处理来自远程客户端在 WP 服务器上的特定身份验证请求......但请注意问题下方关于使用令牌而不是通过网络传递信用的评论(研究“nonce”如果您还不熟悉这些... WP 可以为您创建这些)。

于 2013-04-05T05:36:35.583 回答
1

我已经想通了。下面的代码:

define('WP_USE_THEMES', false);
require('../wp-blog-header.php');
if(!is_user_logged_in())
{
    exit('You do not have access');
}
于 2013-04-05T17:55:41.547 回答