当前位置: 首页 > 知识库问答 >
问题:

在Wordpress中加载CodeIgniter实例

李康安
2023-03-14

我在使用Wordpress时遇到的问题是希望将CodeIgniter功能合并到Wordpress主题文件中。例如,我的许多CodeIgniter视图文件中都包含了页眉和页脚。同样的页眉和页脚也需要包含在Wordpress主题中。

想法是加载CI实例并在Wordpress上使用它。任何帮助都将不胜感激!

我试过这个

https://github.com/falexandrou/Codeigniter-Wordpress-Integration

加载CI引导的文件路径已经正确。其结果是错误的

Your system folder path does not appear to be set correctly. Please open the following file and correct this: index.php

站点步骤:
1。将其包含在顶部的以下模板文件中:

 - 404.php - index.php- archive.php- archives.php
 - links.php -page.php - search.php - single.php */

 <?php
  $wp_ci['return'] = true;
 require('codeigniter.php');

CIindex.php

 <?php
 $wp_did_header = true;         
 require_once dirname( __FILE__ ) .'/blog/wp-blog-header.php';
 define('WP_USE_THEMES', true);
 require_once BASEPATH.'core/CodeIgniter.php';
 ?>

更新:

wp博客头

  if ( !isset($wp_did_header) ) {
$wp_did_header = true;
require_once( dirname(__FILE__) . '/wp-load.php' );
wp();
require_once( ABSPATH . WPINC . '/template-loader.php' );
 }

我成功地在wordpress上加载了codeigniter视图,但我的所有ci_site_url函数都返回网站。com/blog/application什么时候应该是网站。com/application我把这段代码放在WP主题索引之一上。php

  define('STDIN', TRUE);
  $_SERVER['argv'] = array();
  ob_start();
  require('../index.php');
  $GLOBALS['wp_ci_output'] = ob_get_contents();
  ob_end_clean();
  $GLOBALS['CI'] = get_instance();
  require_once(APPPATH.'helpers/wordpress_helper.php');

代码参考:

http://thedaylightstudio.com/blog/2010/06/16/codeigniter-and-wordpress-integration

wordpress助手。php

/**
* Print codeigniter view file in wordpress content
*
* @access   public
* @param    string view file name
* @param    array array of variables to be rendered
* @param    boolean true to return, false to return
* @return   mixed
*/

function wp_ci_load_view($view, $vars = array(), $return = FALSE){
 extract($vars);
  $file = APPPATH.'/views/'.$view.'.php';
  $contents = file_get_contents($file);
  //echo $contents;
  $CI =& get_instance();
  $check_funcs = array('ci_site_url(', '$this->');

  $replace_funcs = array('site_url_wp_safe(', '$CI->');
  $contents = str_replace($check_funcs, $replace_funcs, $contents);
  $contents = eval('?>'.preg_replace("/;*\s*\?>/", "; ?>", 
  str_replace('<?=', '<?php echo ', $contents)).'<?php ');

   if ($return === TRUE){
   return $contents;
   }
 }

https://github.com/falexandrou/Codeigniter-Wordpress-Integration/blob/master/ci-wp-thedaylightstudio/wordpress_helper.php

作者确实说了一个问题:这个版本的唯一问题是它总是呈现相同的CI页面来获取CI对象,而您无法操纵它呈现的页面。谢谢

我的url\u助手

功能ci站点url:区分ci站点url和WP站点url功能

 if ( ! function_exists('ci_site_url')){
   function ci_site_url($uri = '')
   {
    $CI =& get_instance();
    return $CI->config->site_url($uri);
    }
  }

共有1个答案

姜学海
2023-03-14

我已经在codeigniter的助手文件中添加了下面的代码,并在config/autoload中添加了这个助手。php文件自动加载。

/**
 * return CI header to home page cms for 
 */
if (!function_exists('ci_header')) {

    function ci_header() {
        $CI = & get_instance();
        $header = $CI->load->view('includes/header.php', '', true);

        return $header;
    }

}

/**
 * return CI footer to home page cms for 
 */
if (!function_exists('ci_footer')) {

    function ci_footer() {
        $CI = & get_instance();
        $footer = $CI->load->view('includes/footer_homepage.php', '', true);

        return $footer;
    }

}

并将下面的代码放入wordpresswp content/themes/my_theme/header。php

<?php
    echo ci_header();
?>

并把下面的代码在wordpresswp-内容/主题/my_theme/footer.php

<?php
echo ci_footer();
?>

当我调用ci_header()ci_footer()时,您可以直接使用wordpress主题模板中的任何帮助函数

着手并总结一下你还需要为你的项目做些什么。。。

 类似资料:
  • 我遵循了这个指南:http://philpalmieri.com/2009/06/codeigniter-and-wordpress-play-well-together/ 基本上就是说,安装wordpress,让它工作,然后替换索引。带有CodeIgniter的php文件,然后在启动CodeIgniter之前的文件底部,需要word press的wp加载文件。 很好。 但是现在,我的$u会话不起

  • 问题内容: 我熟悉以普通方式在jQuery中使用ajax。 我已经玩了一段时间了,但是不了解Wordpress使其正常工作需要 什么… 我在这里所摘录的内容来自一些教程或文章。 这在 functions.php中 (在子主题中): jQuery本身正在加载并正常工作。 我已经尝试过一些基本的ajax,如下所示: 除此之外,我不知道如何测试以确保它是否从一开始就正确地加载了…… 在这里的任何帮助,将

  • 我正在尝试实现一个客户端站点的延迟加载wordpress插件,该插件是“BJ延迟加载”,客户端使用的主题是“取景器”。 主页上有2400个120x120的缩略图,它们都是帖子,缩略图是帖子的附件,全尺寸图像(点击时加载)是帖子的特色图像(例如,请参见取景器页面上的图像) 我安装了插件,但默认情况下,这只会延迟加载帖子内容中的图像,而这些内容不是。在“其他说明”中,开发人员要求通过过滤器传递以下内容

  • 我有一个与Codeigniter网站建设,我需要有一个博客。它应该是WordPress,所以我决定在我的并在myweb中安装WordPress。com/blog 它工作完美。 现在,我需要改变我的主题页眉和页脚,从我已经在我的网页。 我怎么做? 我的视图位于,但显然,我不能像这样在模板/标题中加载它。php 如果我没有错,我应该在在我的模板文件夹中。所以,问题是,我应该对其进行哪些更改或添加??

  • 我的网站是用Wordpress设计的。一些主题页面有一个定制的PHP脚本来预订东西,我想在CodeIgniter中重构它,以获得更多的灵活性。问题: 1) 如何将WP中的CI功能与CI的路由系统一起使用?我是否必须创建CI页面索引。php/controller/page1/然后在Wordpress中调用它? 2) 我是否必须使用CodeIgniter“视图”系统或Wordpress“主题页面”来获

  • 问题内容: 我浏览了旧的问题,并尝试了许多似乎可以做到的不同方法。我最接近的工作是在这里:如何在自定义WP_QueryAjax上实现分页 我已经尝试了一切,但没有用。页面上没有任何变化。如果您检查并单击“加载更多按钮”,则jQuery会执行“加载更多按钮”操作,因为它从更改为,即使对我来说,这似乎也不对。它并没有添加帖子,我想我缺少一些简单的东西,但是我一生都无法解决。 我的模板文件中的代码是: