如何从WordPress钩子中排除Codeigniter登录

14 浏览
0 Comments

如何从WordPress钩子中排除Codeigniter登录

我正在为一个建立在Codeigniter框架中的日程安排软件开发WordPress插件。前端现在在WP页面中运行良好,使用了一些WP函数、CSS、页眉和页脚。但是,当我尝试在WordPress中连接Codeigniter应用程序的后端时,它表现得像Codeigniter的登录凭据是错误的。如果我从我的Codeigniter index.php中删除以下内容:

require('../wp-blog-header.php');
add_filter('site_url', 'ci_site_url', 1);
function ci_site_url() {
    include(BASEPATH.'application/config/config.php');
    return $config['base_url'];
}
header("HTTP/1.0 200 OK");  

我可以登录到后端视图,但前端视图中失去了WP的页眉和函数等。

我不希望我的Codeigniter后端与WP登录相连。它们需要是分开的。

如何阻止WordPress钩子触发Codeigniter登录视图?

我尝试过:

if( basename(__FILE__) !== '/application/views/user/login.php' ) {
    require('../wp-blog-header.php');
    add_filter('site_url', 'ci_site_url', 1);
    function ci_site_url() {
        include(BASEPATH.'application/config/config.php');
        return $config['base_url'];
    }
    header("HTTP/1.0 200 OK");
}

这种方法不起作用。

结构:

/WordPress/CodeIgniter/

WordPress有自己的index.php(WordPress/index.php)

Codeigniter有自己的index.php(/WordPress/CodeIgniter/index.php),其中包含上述代码。

两者都有自己的.htaccess文件。

WordPress:

# BEGIN WordPress

RewriteEngine On
RewriteBase /WordPress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /portal/index.php [L]

# END WordPress

Codeigniter:

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 

我想要阻止的CodeIgniter视图在WordPress Headers中的服务器位置:

/WordPress/CodeIgniter/application/views/user/login.php

控制器:

/WordPress/CodeIgniter/application/controllers/user.php

我想要阻止的视图/页面的URL位置是:

https://www.MyWebsite.com/WordPress/CodeIgniter/index.php/user/login

0
0 Comments

问题出现的原因是在于如何识别页面。basename($_SERVER["REQUEST_URI"])用于识别页面,而我所指定的页面是错误的。我以为问题出现在登录页面,但实际上冲突出现在后台页面。所以解决方法是:

if( basename($_SERVER["REQUEST_URI"]) !== 'backend') {
    require('../wp-blog-header.php');
    add_filter('site_url', 'ci_site_url', 1);
    function ci_site_url() {
        include(BASEPATH.'application/config/config.php');
        return $config['base_url'];
    }
    header("HTTP/1.0 200 OK");
}

0