1

所以我已经成功地在我的 wordpress 安装中安装了 wp-code-igniter 插件,并配置为使用永久链接运行:

\plugins\wp-code-igniter\wp-code-igniter.php

    // let's use CI a bit to recover our $_GET array
    // Nope, comment out the line below (#39)
    //$_SERVER['PATH_INFO'] = '/ci_mods/recover_get_array/'.$query_string;

\plugins\wp-code-igniter\ci\application\routes.php

    // Add this in to line 41
    $route['(:any)'] = "welcome/index/$1"; # this line is new!

到目前为止一切顺利,即使打开了永久链接,wordpress 现在也可以再次使用 - 但是我真的不知道如何在模板中使用 codeigniter,我尝试将以下内容添加到我的主题 index.php 页面的正文中:

 <?php
 // Standard index.php for twentytwelve theme
  get_header(); ?>

<div id="primary" class="site-content">
    <div id="content" role="main">

 <?php
      // This is where I try to access the codeigniter functions
      $this->load->library('table');

      $data = array(
         array('Name', 'Color', 'Size'),
         array('Fred', 'Blue', 'Small'),
         array('Mary', 'Red', 'Large'),
         array('John', 'Green', 'Medium')
      );

      echo $this->table->generate($data);
 ?>


 <?php if ( have_posts() ) : ?>

<?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
    <?php get_template_part( 'content', get_post_format() ); ?>
    <?php endwhile; ?>

    <?php twentytwelve_content_nav( 'nav-below' ); ?>

    <?php else : ?>

        <article id="post-0" class="post no-results not-found">

        <?php if ( current_user_can( 'edit_posts' ) ) :
            // Show a different message to a logged-in user who can add posts.
        ?>
            <header class="entry-header">
                <h1 class="entry-title"><?php _e( 'No posts to display', 'twentytwelve' ); ?></h1>
            </header>

            <div class="entry-content">
                <p><?php printf( __( 'Ready to publish your first post? <a href="%s">Get started here</a>.', 'twentytwelve' ), admin_url( 'post-new.php' ) ); ?></p>
            </div><!-- .entry-content -->

        <?php else :
            // Show the default message to everyone else.
        ?>
            <header class="entry-header">
                <h1 class="entry-title"><?php _e( 'Nothing Found', 'twentytwelve' ); ?></h1>
            </header>

            <div class="entry-content">
                <p><?php _e( 'Apologies, but no results were found. Perhaps searching will help find a related post.', 'twentytwelve' ); ?></p>
                <?php get_search_form(); ?>
            </div><!-- .entry-content -->
        <?php endif; // end current_user_can() check ?>

        </article><!-- #post-0 -->

    <?php endif; // end have_posts() check ?>

    </div><!-- #content -->
</div><!-- #primary -->

作为访问 codeigniters 功能的简单测试,但它不起作用并在 ci 代码执行时破坏页面 - 谁能建议如何让它工作?WordPress wp-code-igniter 插件

4

1 回答 1

1

修复了它 - 在模板中使用 codeigniter 函数之前,您需要获取 codeigniter 对象 - 修改代码如下,它适用于任何 wordpress 模板文件:

  <?php
  $ci = &get_instance();

  $ci->load->library('table');

  $data = array(
            array('Name', 'Color', 'Size'),
            array('Fred', 'Blue', 'Small'),
            array('Mary', 'Red', 'Large'),
            array('John', 'Green', 'Medium')    
  );
  echo $ci->table->generate($data);
  ?>
于 2013-06-11T14:39:09.203 回答