PHP 警告 Wordpress 中的非法字符串"privacy_policy"



我不断收到这些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版本中,以这种方式访问字符串将导致"警告:非法字符串偏移"。

请参阅此评估。

最新更新