在codeigniter中使用WordPress插件

时间:2015-11-30 作者:Andrei Henea

除了类似wordpress的Codeigniter之外,还可以在其他框架中使用wordpress插件?我想使用wordpress预订日历(https://wordpress.org/plugins/booking/ ) 在codeigniter框架下构建的网站中。在该网站的后端,使用以下主题构建了一个管理面板:https://almsaeedstudio.com/preview

我想加载所需的wp文件,以便在我的网站中使用此插件,我应该如何继续?

我知道这是一个很大的问题,但是如果有人有任何想法,或者已经做出了类似的事情,请分享你的知识。谢谢

3 个回复
SO网友:Mark Kaplun

这是可能的,但可能不值得。您需要做的是引导wordpress,包括wp-load.php 位于wordpress目录结构根目录的文件。问题是wordpress还远远没有一个干净的、无全局限制的、有组织的代码,因此,虽然理论上是可能的,但YMMV很大程度上取决于您的代码有多干净以及您需要什么样的GUI。

我一点也不确定我是否会只为一个插件就开始这样的项目,因为最终你将有两个堆栈需要维护和升级,并在每次升级后重新测试。

SO网友:Jeff Mattson

这样做的时间太长,不值得花这么多时间。您不妨首先使用Codeigniter编写插件。插件本身,如果编写正确,依赖Wordpress核心来实现其功能。Codeigniter在架构上与Wordpress不同,它只让那些喜欢用锤子反复敲击自己拇指的人感到高兴。

SO网友:CrandellWS

找到了一篇同时使用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

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请