0

問題: Wordpress ディレクトリ内に CodeIgniter アプリがあり、Wordpress の関数を使用してナビゲーションを生成しています。wp_magic_quotesただし、 wp-includes/load.php にある関数、具体的には次の行が原因で、Wordpress が Codeigniter Cookie を役に立たなくすることがわかりました。

$_COOKIE = add_magic_quotes( $_COOKIE );

現在の解決策は、wp_magic_quotes関数を直接変更して変数array_walkをループし、次のように CI セッションを除くすべてのキーに適用することです。$_COOKIEadd_magic_quotes

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 です。関数を再定義することはできません。コア ファイル以外の場所でその関数を定義または再定義しようとすると、エラーが発生します。これは、コア ファイルを編集する以外に何をしても、コード内で 2 回定義されるためです。

また、これらの関数には、役立つ可能性のあるフックもありません。ごめん。特定のソリューションを実装する方法を尋ねるのではなく、達成したいことを説明した場合、3 つの方法があります。この質問にはx/y 問題があるかもしれません。

于 2013-03-13T14:57:07.447 に答える