1

So I have successfully got the wp-code-igniter plugin installed on my wordpress installation and configured to run with permalinks:

\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!

So far so good, wordpress now works again even with permalinks on - however I don't really know how to use codeigniter within the templates, I tried adding in the following to the body of my themes index.php page:

 <?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 -->

As a simple test to access codeigniters functions but it doesn't work and breaks the page at the point of ci code execution - can anyone advise how to get this working?WordPress wp-code-igniter plugin

1 Answer 1

1

Fixed it - before using codeigniter functions in the template you need to get the codeigniter object - modified the code as follows and it works on any wordpress template file:

  <?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);
  ?>
Sign up to request clarification or add additional context in comments.

1 Comment

Just documenting a couple of good resources on this topic for benefit of someone digging into this - marketingadept.com/blog/2013/02/… and wildmice.ca/en/blog-posts/…

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.