该插件尚未通过WordPress的最新3个主要版本进行测试。 当与较新版本的WordPress一起使用时,可能不再受到维护或支持,并且可能会存在兼容性问题。

WordPressIgniter

描述

A WordPress plugin that integrates CodeIgniter

Why a CodeIgniter/Wordpress integration plugin?

  1. I (along with many others) like CodeIgniter for it’s features such as ActiveRecord and MVC disciplines, plus I have a ton of cool libs and stuff in CodeIgniter that I would like to use in the WordPress environment

  2. I’m getting tired of building custom user, login, and session management systems for CodeIgniter. WordPress has them already.

  3. I’m getting tired of building custom look and feel and templates for CodeIgniter, WordPress already is that, and has thousands of themes available.

  4. I’m getting tired of building custom feature X for CodeIgniter, when it may already exist in WordPress either natively or as a plugin.

Why did I create this plugin, even though some others already exist? Because I wanted to:

  1. easily integrate CodeIgniter without invading its core very much, or optionally, not at all.

  2. show CodeIgniter output in a page, preserving all WordPress menu structure, template structure etc.

  3. not require template editing, so that templates can be easily swapped out and the CodeIgniter itegration still work.

  4. allow customizing of the CodeIgniter APPPATH and BASEPATH variables, so that the system and application folders can be put somewhere outside the plugins folder (or docroot altogether for that matter)

  5. handle segmented urls in CodeIgniter fashion, including paths that aren’t valid in WordPress (i.e. via WordPress 404 hooks), and dispatch to appropriate CodeIgniter controller functions.

Tips

  • If your CodeIgniter controller sets the $this->content[‘page_title’], such as $this->content['page_title'] = 'Blast off!';
    then this plugin will set the template-rendered title to “Blast off!” via a WordPress API registered ‘the_title’ filter hook.
  • If you choose to tick the “CodeIgniter grabs all SEO urls” checkbox, beware that CodeIgniter will return its own 404 page (along
    with http header!) on any non-root urls, i.e. permalinks. This behaviour can be set within CodeIgniter by adjusting the routes.php
    file to point to a valid controller, like this: $route['404_override'] = 'welcome';

TODO

(I don’t know if these are even possible, or I might have already done them)

  • provide a way to make CodeIgniter automatically use WordPress’ database settings, from within the plugin (yes I know I could intrude CodeIgniter core to do this, but it’s what I wanted to avoid)
  • provide a mechanism to instantiate CodeIgniter only on the overridden page, rather than all frontend urls.

安装

We’ll assume that you already have a working WordPress blog.

  1. If you don’t already have CodeIgniter, learn what it is here: http://ellislab.com/codeigniter
    and then install it on your web site.

  2. Create a page, and give it a meaningful title. Note that it must be a “page”, not a post. Insert the [wordpressigniter] shortcode anywhere in the body. (This will cause CodeIgniter to replace the entire contents of the page.)

  3. Install this plugin to your WordPress instance on your web site, and activate it.
    (for the most up-to-date bleeding edge version, get it from github: https://github.com/dynamodan/wordpressigniter

  4. Go to the WordPressIgniter settings, and set the CodeIgniter Path setting to point to the folder containing CodeIgniter’s index.php front controller file.

  5. Optionally, set your own custom APPPATH and BASEPATH constants to point to custom paths for the system and application folders, if you choose to put them in another place besides the CodeIgniter defaults.

  6. Visit the page you set in step #1. You should see the standard CodeIgniter welcome content, or your CodeIgniter project’s output if you already have one that you are using with this plugin. There may be some troubleshooting messages instead.

  7. Go to the WordPressIgniter settings, and optionally check the “Trigger with [wordpressigniter] shortcode in posts, too” checkbox. This enables you to use a blog post containing the [wordpressigniter] shortcode to integrate CodeIgniter as well. Note that the [wordpressigniter] shortcode will show in the list views, so I recommend putting it after a “Read More” tag.

评价

2018年1月29日
Before calling CodeIgniter, I can not open The plugin Setting. 2 fatal errors occur: ( ! ) Fatal error: Uncaught ArgumentCountError: Too few arguments to function do_settings_fields(), 1 passed in /Users/fedibelkacem/Sites/wordpress/wp-content/plugins/wp-igniter/templates/settings.php on line 5 and exactly 2 expected in /Users/fedibelkacem/Sites/wordpress/wp-admin/includes/template.php on line 1356 ( ! ) ArgumentCountError: Too few arguments to function do_settings_fields(), 1 passed in /Users/fedibelkacem/Sites/wordpress/wp-content/plugins/wp-igniter/templates/settings.php on line 5 and exactly 2 expected in /Users/fedibelkacem/Sites/wordpress/wp-admin/includes/template.php on line 1356 I'm using WP 4.9.2 on PHP 7.1.19 on Mac and I would test the plugin with CodeIgniter 3.1.7. I also updated the last wp-igniter.php from GitHub, that of November 6, 2017. Both (old and new one) throw the Fatal errors. Would you please update the plugin?
2016年9月3日
Integrates the powers of CodeIgniter with WordPress. If you face troubles with it, try to tick "CodeIgniter grabs all SEO urls (use with caution!!)" the caution remark could scare you away, but it is what actually makes it work!!!
2016年9月3日
Saved me tons of effort. What I like best is that not only can you access CI from Wordpress, but inside CI you also have access to all the Wordpress APIs. That is a huge value for me, resolving all the dilemma of CI vs Wordpress choice. Why choose when you can get both? Superb. Thanks. Tip to guys, the CI path must have a trailing slash
阅读所有5条评价

贡献者及开发者

“WordPressIgniter” 是开源软件。 以下人员对此插件做出了贡献。

贡献者

将“WordPressIgniter”翻译成您的语言。

对开发感兴趣吗?

您可以浏览代码,查看SVN仓库,或通过RSS订阅开发日志

更新日志

1.4

  • fixed a bug where WordPress was throwing 404’s for nearly all CodeIgniter urls

1.3

  • implemented [wordpressigniter] shortcode, which will deprecate the Page Override setting, as it was quite buggy and had some limitations.

1.2

  • fixed revision number in this readme file

1.1

  • fixed parameter bug caused by CodeIgniter erasing the $_GET variable
  • fixed some bugs caused by setting $current_user, now we set this in our own $CI_USER variable
  • added a feature to allow comma-separated page titles that match for inserting CodeIgniter ouput

1.0

  • initial release