0

我们的问题:我们在 Wordpress 目录中有一个 CodeIgniter 应用程序,并且正在使用 Wordpress 的功能来生成导航。但是,我们发现由于wp_magic_quotes位于 wp-includes/load.php 中的函数,Wordpress 使 Codeigniter Cookie 无用——特别是这一行:

$_COOKIE = add_magic_quotes( $_COOKIE );

我们当前的解决方案是直接使用来修改wp_magic_quotes函数array_walk以循环$_COOKIE变量并应用于add_magic_quotes除我们的 CI 会话之外的所有键,如下所示:

function ci_ignore_magic_quotes($value,$key)
{
    if($key != "ci_session")
    {
        stripslashes_deep($value);
    }
}

并将上述行更改wp_magic_quotes为:

    array_walk($_COOKIE, 'ci_ignore_magic_quotes');
//$_COOKIE = add_magic_quotes( $_COOKIE );

但是,这显然是有问题的,因为这些更改将在下一次 WP 升级时被丢弃。

是否可以在不修改此核心文件的情况下解决我们的问题?

4

1 回答 1

0

如果不编辑核心文件,您将无法编辑这些函数——wp_magic_quotes并且——。wp_unregister_GLOBALS

这是基本的 PHP。您不能重新定义函数。试图在该核心文件之外的任何地方定义或重新定义该函数将导致错误,因为无论您做什么,除了编辑核心文件之外,它将在代码中定义两次。

这些函数中也没有可能对您有所帮助的钩子。对不起。如果您解释了您想要完成的工作,而不是询问如何实施某些特定的解决方案,那么三种可能是您想要做的事情的方法。您可能对这个问题有x/y 问题

于 2013-03-13T14:57:07.447 回答