Я сделал следующее, чтобы заставить это работать (у меня есть приложение Code Igniter в отдельном каталоге в каталоге Wordpress) - то, что я, очевидно, не, как будто я должен был изменить ядро файл в Wordpress.
Во-первых, я добавил свой код воспламенитель имя куки в массив $ no_unset в сор-включает/load.php В моем случае это было ci_session:
$no_unset = array('GLOBALS', '_GET', '_POST', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES', 'table_prefix','ci_session');
Во-вторых, я понял, что Wordpress игровая функция add_magic_quotes была управляя глобальным $ _COOKIE. Это привело к тому, что CodeIgniter заново создавал файл cookie при каждой загрузке страницы или перенаправлял и тем самым нарушал любую непрерывность. Итак, я прокомментировал эту строку в в.ч.-includes.load.php (около линии 545)
//$_COOKIE = add_magic_quotes($_COOKIE);
Далее, чтобы сохранить эту функцию в такте для все другого печенья, связанные с Wordpress, я создал функцию array_walk, чтобы перебрать за $ _COOKIE глобальными и применять ко всему add_magic_quotes печенья шахтного внутри кроме сора-включает/load.php функция
/**
* Applies Magic Quotes to the $_COOKIE global but ignores Codeigniter's Cookie
* @param string $value Value passed by array_walk function
* @param string $key Key passed by array_walk function
*/
function ci_ignore_magic_quotes($value,$key)
{
if($key != "ci_session")
{
stripslashes_deep($value);
}
}
//Put this line in place of the commented out line above...
array_walk($_COOKIE, 'ci_ignore_magic_quotes');
После того как я сделал это, я уже не будучи несколько печенья хранится в моей таблице ci_sessions и сессиях были успешно сохранены.
Надеюсь, это поможет!
Следует отметить. Если мне нужен файл Wordpress в функции контроллера, он работает, минус тот факт, что site_url определяется дважды, а PHP это не нравится. Любые идеи, возможно, о том, как изменить site_url? –
Пытается попробовать: http://wordpress.org/extend/plugins/wp-code-igniter/installation/ –
Не работает то, что мне нужно. –