如何从WordPress钩子中排除Codeigniter登录
如何从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 WordPressRewriteEngine 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
问题出现的原因是在于如何识别页面。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"); }