9

我的网站是用 Wordpress 设计的。一些主题页面有一个定制的 PHP 脚本用于预订东西,我想在 CodeIgniter 中对其进行重构,以获得更大的灵活性。问题 :

1) 如何在 WP 中使用 CI 功能与 CI 的路由系统?我是否必须制作一个 CI 页面 index.php/controller/page1/ 然后在 Wordpress 中调用它?

2) 我是否必须使用 CodeIgniter “视图”系统或 Wordpress “主题页面”来获得我的结果?

谢谢

4

3 回答 3

13

I used the following.

My goal is to use CodeIgniter for some pages, and leave the other pages in Wordpress untouched. I only have a few steps to do it :

Copy CI folder at the Wordpress root

Modify the « index.php » of CI to add an include which will add WP functions to CodeIgniter :

@require '../wp-load.php';
require_once BASEPATH.'core/CodeIgniter.php';

Once this line added, Wordpress functions will be usable in CodeIgniter ; they will be used mainly for views.

Modify the .htaccess of WP to not rewrite CI's URLs : After this line :

 RewriteRule ^index\.php$ - [L]

Add this line :

RewriteCond %{REQUEST_URI} !^/(codeigniter_folder|codeigniter_folder/.*)$

Then CI views can use WP functions.

于 2013-08-07T13:43:39.827 回答
3

如果您有一个使用登录会话的 CI 应用程序,您必须修改“load.php”文件(来自“wp-includes”WP 文件夹)。为此,请遵循此链接中 PhilB 的回答。有关完整的解释,请遵循此帖子

于 2014-03-05T10:04:13.633 回答
-3

WordPress 和 CodeIgniter 都是 PHP 中最流行的框架。CodeIgniter 是一个轻量级的 PHP 框架,可以帮助开发可以与 WordPress 集成的应用程序。虽然有些用户更喜欢分别开发 CodeIgniter 和 WordPress 元素,但我们将通过一个示例,其中主要导航和页脚在两个平台上都相似,因为两次更新导航和页脚没有多大意义。

在这里,我们学习了使用 WordPress 和 CodeIgniter 的两件事

  1. 如何集成已经运行的 WordPress 网站来集成 CodeIgniter
  2. 如何集成已经运行的 Codeigniter 网站来集成 WordPress

  3. 将 CodeIgniter 集成到 WordPress 令人震惊的是,许多网站所有者监督者仍然倾向于将 WordPress 作为他们必不可少的内容管理系统 (CMS),考虑到 WordPress 带来的影响深远的亮点,你无法指责他们。桌子。

好的,让我们在这里开始将 CodeIgniter 集成到 WordPress 中,WordPress 是我们的主要应用程序,我们将在 CodeIgniter 中使用它的功能,同时将 CodeIgniter 应用程序保留在一个子目录中。

第 1 步:添加 WordPress 引导文件 WordPress 的 wp-load.php 文件紧接在 CI 的 index.php 文件中调用 Codeigniter 引导文件之前

在向 CI 文件添加任何 WordPress 功能之前。我们将进行测试以确保一切正常。我们应用程序的第一页看起来不错,但仅此而已。

我们应用程序中的每个 URL,包括表单处理程序,都被重定向到根目录(即 WordPress 的目录),导致 404 错误。我们发现 WordPress 和 Codeigniter 在全局范围内都有一个“site_url”函数。通过在 CodeIgniter 之前加载 WordPress 引导文件,我们让 WordPress site_url.Codeigniter 函数静默“失败”,因为它正在检查是否存在 site_url 函数。

第 2 步:扩展 Codeigniter URL 助手 我们的解决方案是“扩展” CodeIgniter 的 URL 助手。通过使用 ci_site_url,我们可以解决 site_url 问题。My_url_helper.php (helper) 文件应该在 CodeIgniter 的应用程序目录中。

第 3 步:在 CodeIgniter 应用程序中将 site_url 更改为 ci_site_url。将所有 site_url 文件引用替换为 ci_site_url 到您的应用程序、控制器、模型和目录中。

一旦我们完成了这些步骤,我们的 CI 应用就可以工作了……</p>

第 4 步:阻止 WordPress 管理我们的 cookie!我们仍然无法正常工作的网站是我们在 Codeigniter 中构建的管理面板。我们的凭据已被接受,但仍重定向到登录页面。

我想您知道 CodeIgniter 会在您登录时为每个活动的数据库会话创建 cookie。这可能会导致 WordPress 引导文件纠正问题。当 WordPress 通过 $_COOKIE 全局循环并对除 CodeIgniter cookie 之外的所有元素实施 add_magic_quotes 功能时,就会发生这种情况。

  1. 将 WordPress 集成到 CodeIgniter 如果您已经在 CodeIgniter 中创建了网站并添加了博客页面,那么 WordPress 是最佳选择,因此,首先,将 WordPress 安装在您网站上名为 blog 的文件夹中。它将位于您的 CodeIgniter 网站的顶级目录中。所以它会在 CI 安装的系统文件夹旁边。如果您的站点已有数据库,请让 WordPress 将表添加到具有前缀的同一个数据库中,以使事情变得简单。

之后,在 CodeIgniter 的 index.php 文件顶部添加以下行。根据需要更改 wp-blog-header.php 的路径以指向您的 WordPress 根目录。

全部完成!!此代码允许在不离开 CodeIgniter 站点的情况下访问 WordPress 博客。更多辅助功能在 WordPress 文档中有详细说明。

查看更多:如何将 CodeIgniter 与 WordPress 集成

于 2018-08-10T11:38:01.653 回答