首页 文章

仅允许登录WordPress管理员访问页面(在WordPress核心之外)

提问于
浏览
0

关于我想要完成什么的背景...目前我已经在Codeigniter上创建了一个迷你CMS来编辑Web应用程序的一些数据库内容 . 现在它没有密码保护,因为它仍在开发中 . 我想将它集成到我的WordPress安装中,以便我的客户端不必登录CMS and WordPress .

我到目前为止的地方是:

  • 我创建了一个自定义WP admin_menu (通过 add_menu_page

  • 我在管理员菜单选项卡的 iframe 中显示CMS可见/工作 .

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

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

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

先感谢您!

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

2 回答

  • 3

    我已经弄清楚了 . 代码如下:

    define('WP_USE_THEMES', false);
    require('../wp-blog-header.php');
    if(!is_user_logged_in())
    {
        exit('You do not have access');
    }
    
  • 1

    您可能希望使用WordPress's current_user_can()函数来确认用户至少有一个通常与Admin用户关联的功能,或者是 Administrator 角色的成员 .

    根据该codex页面,这应该可以根据角色测试管理员,虽然我无法确认这个抱歉 . 我在过去肯定使用过这种方法来验证用户是否具有给定的功能 .

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

    EDIT: 要使用WP凭据对来自不同站点的用户进行WP身份验证,this answer over on Wordpress.stackexchange描述了如何使用WP 's built in XMLRPC service. The answer is written in the context of authenticating from a servlet, but cOnsumption of the WP XMLRPC service could be implemented in eg JavaScript at the client (rather than between your sites'两个单独的后端,因此在您的方案中可能更有用 .

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

相关问题