问题似乎与我使用此代码有关:
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING) ;
$_GET = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING) ;
我把它放在插件的顶部(插件的类之外);我用它来清理任何GET和POST值。
当您执行任何导致$\\u帖子的操作(如帖子或页面发布或插件停用)时wp_magic_quotes()
负载中的功能。php被调用(通过check_admin_referer()
函数,对所有页面上的所有$\\u帖子调用,包括发布和插件停用帖子):
// code fragment from wp_magic_quote() in load.php
// Force REQUEST to be GET + POST.
$_REQUEST = array_merge( $_GET, $_POST );
我的
filter_input_array
代码(我用来清理$\\u get和$\\u post)导致
array_merge()
不是数组,这导致此错误显示在wp admin文件夹错误日志中:
"PHP Warning: array_merge(): Argument #2 is not an array
in /[specific file location redacted]/wp-includes/load.php
on line 664\'
通过移动
filter_input_array
语句(上面的第一个代码块)在检查插件设置表单上的提交按钮时,错误消失了。显然,我的
filter_input_array
语句与冲突
wp_magic_quotes
使用$\\u POST参数。
移动我的filter_input_array
“check for the plugin settings page button submit”(检查插件设置页面按钮提交)中的语句似乎已修复该问题。