我不断收到这些PHP错误警告。
警告:第96行/home/customer/www/website.com/public_html/wp-admin/includes/class-wp-privacy-policy-content.php中的非法字符串偏移量"plugin_name">
警告:第97行/home/customer/ww/website.com/public_html/wp-admin/includes/class-wp-privacy-policy-content.php中的非法字符串偏移量"policy_text">
代码如下所示:
foreach ( $old as $key => $data ) {
if ( ! empty( $data['removed'] ) ) {
unset( $old[ $key ] );
continue;
}
$old[ $key ] = array(
'plugin_name' => $data['plugin_name'],
'policy_text' => $data['policy_text'],
);
}
我该怎么解决这个问题?提前谢谢!
这可能是您下载的WP插件中的一个错误。依次关闭一个插件,看看哪个插件会停止出现错误,找到哪个WP插件是原因。这个问题看起来像是将非数组值传递到了一个要作为数组的$var
中。
正如Ro所说,看起来代码正试图将字符串处理为数组。在这种情况下,如果不是数组,可以将一个简单的optout放入代码中忽略。
虽然这将直接解决您的问题,但我强烈建议找到$data
值的来源,并在那时从源头纠正问题(如前所述,可能是在插件中(。
foreach ( $old as $key => $data ) {
if(!is_array($data)){
continue; // if data is not an array then
// carry on to the next iteration.
}
if ( ! empty( $data['removed'] ) ) {
unset( $old[ $key ] );
continue;
}
$old[ $key ] = array(
'plugin_name' => $data['plugin_name'],
'policy_text' => $data['policy_text'],
);
}
我的猜测是$data
实际上是一个字符串而不是数组。在8.0.0beta之前的PHP版本中,以这种方式访问字符串将导致"警告:非法字符串偏移"。
请参阅此评估。