Error: How to fix import demo for wordpress theme

Error: How to fix import demo for wordpress theme

当我在 wordpress 主题中导入演示时,我得到了以下内容

"Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in E:\xampp\htdocs\wordpress\wp-content\themes\random\framework\includes\wpalchemy\MetaBox.php on line 545" 错误。

当行的快捷方式转到

"// 尝试修复损坏的序列化数据,特别是 "\r\n" 在 wordpress XML 导出期间被转换为 "\n" (WXR) // "maybe_unserialize()" 修复了一个 wordpress 错误,该错误在 export/import 期间双重序列化已经序列化的数据 $value = maybe_unserialize( preg_replace( '!s:(\d+):"(. *?)";!es', "'s:'.strlen('$2').':\"$2\";'", stripslashes( $meta['value'] ) ) );

                        update_post_meta( $post_id, $key,  $value );" 

已经写好了。

在这种情况下如何纠正。如果保留错误没有问题,它不会做任何事情,因为它是主题。这是我的第一条消息,所以我会永远记住回答的人。谢谢你。最好的问候

这是因为 PHP 已弃用的函数用法。

 maybe_unserialize( preg_replace( '!s:(\d+):"(.*?)";!es', "'s:'.strlen('').':\"\";'", 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