找到了一篇同时使用codeigniter和wordpress的文章,它可能不会直接回答这个问题,但可能会有所帮助。文章全部引用,以确保内容可用性。
https://www.cometchat.com/blog/how-to-integrate-codeigniter-with-wordpress/
2015年8月12日CometChat团队许多网站所有者和管理员仍然喜欢WordPress作为他们的主要内容管理系统(CMS),考虑到WordPress提供的全面功能,你不能责怪他们。然而,当涉及到创建定制应用程序时,WordPress被放在次要位置,因为由于许多原因,它不是一个合适的工具。但是,CMS的易管理性和更新太难放弃,这就是为什么今天许多网站所有者更喜欢使用CodeIgniter来构建应用程序。
CodeIgniter是一个轻量级PHP框架,它可以帮助开发可以与WordPress集成的应用程序,我将很快对此进行解释。虽然一些用户喜欢单独开发CodeIgniter和WordPress元素,但我们将通过一个示例,其中两个平台中的主导航和页脚都是相似的,因为两次更新导航和页脚没有多大意义。
wp ci。
由于WordPress是我们这里的主要应用程序,我们将在CodeIgniter中使用其功能,同时将CodeIgniter应用程序保存在子目录中。
下面是将CodeIgniter应用程序与WordPress集成的分步指南
添加WordPress引导文件我们将查看Phil Palmieri的案例研究,以帮助我们了解如何将CodeIgniter与WordPress集成。wp负载。php文件将直接位于索引中CodeIgniter引导文件之前。php文件:我们从Phil Palmieri那里得到了线索,并引用了WordPress的wp负载。调用CI索引中CodeIgniter引导文件之前的php文件。php文件:*-------------------------------------------------------------------------------------*加载引导文件*-------------------------------------------------------------------------------------**现在开始**///加载WordPress文件。require\\u once(“/Server/path/to/wp load.php”);需要\\u once BASEPATH。“堆芯/代码点火器。php’;很简单吧?
现在,在我们将WordPress功能添加到CodeIgniter CI文件之前,我们将执行一个测试以确保一切正常。如上所述,CodeIgniter应用程序中的所有链接和URL都将链接回WordPress的根目录,这将导致404错误。
由于CodeIgniter和WordPress都具有“site\\u url”功能,因此即使在CodeIgniter引导文件之前加载WordPress引导文件,我们仍然会遇到错误。然而,通过安装Runkit PHP扩展,我们可以覆盖全局函数,前提是我们在单独的目录中同时拥有WordPress和CodeIgniter的site\\uURL函数。
扩展Codeigniter URL助手我们现在将创建一个新的命名空间函数来“扩展”Codeigniter的URL助手。通过使用ci\\u site\\u url,我们可以解决site\\u url问题。My\\u url\\u帮助程序。php(helper)文件应位于CodeIgniter的应用程序目录中。
3、在CodeIgniter应用程序中将site\\u url更改为ci\\u site\\u url。快速搜索应用程序、控制器、模型和目录,并将所有site\\u url文件引用替换为ci\\u site\\u url。
停止WordPress扭曲Cookie!您可能会遇到这样一个问题:当您登录时,CodeIgniter将为每个活动数据库会话创建cookie。这会导致WordPress引导文件纠正问题。当WordPress通过$\\u COOKIE全局循环并对除CodeIgniter COOKIE之外的所有元素实现add\\u magic\\u quotes功能时,就会发生这种情况。以下是解决此问题的代码。
滚动到第520行并添加此功能:(假设您正在使用CI的默认CI\\U会话键)
/**
* Applies Magic Quotes to the $_COOKIE global but ignores Codeigniter\'s Cookie
* @param string $value Value passed by array_walk function
* @param string $key Key passed by array_walk function
*/
function ci_ignore_magic_quotes($value,$key)
{
if($key != "ci_session")
{
stripslashes_deep($value);
}
}
注释掉wp_magic_quotes函数中的以下行,并添加对ci_ignore_magic_quotes函数的引用。
array_walk($_COOKIE, \'ci_ignore_magic_quotes\');
//$_COOKIE = add_magic_quotes( $_COOKIE );
此外,您必须将WordPress设置为不取消设置
$_COOKIE[\'ci_session\']:
$no_unset = array( \'GLOBALS\', \'_GET\', \'_POST\', \'_COOKIE\', \'_REQUEST\',
\'_SERVER\', \'_ENV\', \'_FILES\', \'table_prefix\',\'ci_session\' );
完成所有步骤后,您就可以开始在CodeIgniter应用程序中使用WordPress了,就像它一直存在一样!。
中所做的更改wp-includes/load.php