当我以wordpress主题导入演示时,我得到了以下内容
“警告:preg_replace():不再支持/ e修饰符,而是在以下E:\ xampp \ htdocs \ wordpress \ wp-content \ themes \ random \ framework \ includes \ wpalchemy \ MetaBox.php中使用preg_replace_callback第545行”错误。
当该行的快捷方式转到
“ ///尝试修复损坏的序列化数据,特别是在wordpress XML导出(WXR)期间将“ \ r \ n”转换为“ \ n” //“ maybe_unserialize()”修复了一个wordpress错误,该错误会在导出/导入过程中对已序列化的数据进行双序列化$ value = may_unserialize(preg_replace('!s:(\ d +):“(。*?)” ;! es',“ 's:'。strlen('$ 2')。':\“ $ 2 \”;'',stripslashes($ meta ['value']))));
update_post_meta( $post_id, $key, $value );"
已经写好了。
在这种情况下要采取的纠正措施。如果保持错误没有问题,那么它将不会做任何事情,因为它可以正常工作。这是我的第一个信息,因此我将永远记住回答的人。谢谢。最好的问候
答案 0 :(得分:0)
这是因为不推荐使用PHP函数。
maybe_unserialize( preg_replace( '!s:(\d+):"(.*?)";!es', "'s:'.strlen('$2').':\"$2\";'", stripslashes( $meta['value'] ) ) )
替换为以下代码:
preg_replace_callback( '!s:(\d+):"(.*?)";!s', array( $this, 'fix_serialized_string_type_callback' ), stripslashes( $meta['value'] ) );
并在同一文件(wp-content \ themes \ random \ framework \ includes \ wpalchemy \ MetaBox.php)中添加以下功能,
protected function fix_serialized_string_type_callback( $matches ) {
return sprintf( 's:%s:"%s";', strlen( $matches[2] ), $matches[2] );
}
如果这不起作用,请升级您的框架。我认为框架作者已解决此问题
https://github.com/farinspace/wpalchemy/blob/master/wp-content/wpalchemy/MetaBox.php