Как объединить / интегрировать функциональность блогов CodeIgniter и Wordpress? - PullRequest
0 голосов
/ 17 марта 2012

Мой веб-сайт имеет особенность блогов. Я должен сделать блог, который бы выглядел так же, как и внешний вид моего сайта.

Как объединить функциональность CodeIgniter и Wordpress (только), чтобы он выглядел на одном веб-сайте?

Я видел этот вопрос: Шаблон Wordpress с codeigniter . Но понятия не имею.

Ответы [ 2 ]

2 голосов
/ 18 марта 2012

Кажется, что это немного излишне.

Почему бы не использовать службу Restful, такую ​​как json_api , чтобы получить ваши сообщения, а затем скопировать файл css (части)?

0 голосов
/ 03 февраля 2013

Для этого вам нужно будет создать 2 файла и изменить 2 существующие функции. Одна функция в CodeIgniter, а другая в Wordpress.

Вот шаги.

1.) Откройте файл configs / hooks.php и создайте ловушку pre_controller следующим образом:

$hook['pre_controller'] = array(
    'class'    => '',
    'function' => 'wp_init',
    'filename' => 'wordpress_helper.php',
    'filepath' => 'helpers'
);

2.) Создайте новый файл в вашем каталоге помощников под названием «wordpress_helper.php» и добавьте в него следующий код:

/**
*
*/
function wp_init(){


    $CI =& get_instance();


    $do_blog = TRUE; // this can be a function call to determine whether to load  CI or WP


    /* here we check whether to do the blog and also we make sure this is a
    front-end index call so it does not interfere with other CI modules. 
    */
    if($do_blog 
        && ($CI->router->class == "index" && $CI->router->method == "index")
    )   
    {       

    // these Wordpress variables need to be globalized because this is a function here eh!
        global $post, $q_config, $wp;
        global $wp_rewrite, $wp_query, $wp_the_query;
        global $allowedentitynames;
        global $qs_openssl_functions_used; // this one is needed for qtranslate


        // this can be used to help run CI code within Wordpress.
        define("CIWORDPRESSED", TRUE);


        require_once './wp-load.php';

        define('WP_USE_THEMES', true);

        // Loads the WordPress Environment and Template 
        require('./wp-blog-header.php');

        // were done. No need to load any more CI stuff.
        die();


    }

}

3.) Откройте wp-includes / link-template.php и сделайте следующее редактирование:

if ( ! function_exists('site_url'))
{
    function site_url( $path = '', $scheme = null ) {
        return get_site_url( null, $path, $scheme );
    }

}

4.) Скопируйте url_helper.php из вспомогательной папки CodeIgniter в вспомогательную папку APPPATH. и сделайте следующее редактирование:

if ( ! function_exists('site_url'))
{
    function site_url($uri = '', $scheme = null)
    {

        // if we are in wordpress mode, do the wordpress thingy
        if(defined('CIWORDPRESSED') && CIWORDPRESSED){

            return get_site_url( null, $path, $scheme );

        }else{

            $CI =& get_instance();
            return $CI->config->site_url($uri);
        }
    }

}

Шаги, приведенные выше, позволят вам динамически загрузить приложение CI или сайт WP на основе простой фильтрации. Это также дает вам доступ ко всем функциям CI в WP, которые вы можете использовать.

...