【问题标题】:Error: How to fix import demo for wordpress theme错误:如何修复 wordpress 主题的导入演示
【发布时间】:2019-01-03 19:54:11
【问题描述】:

当我在 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 = maybe_unserialize( preg_replace( '!s:(\d+):"(.*?)";!es', " 's:'.strlen('$2').':\"$2\";'", stripslashes($meta['value'])));

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

已经写好了。

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

【问题讨论】:

    标签: php wordpress importerror


    【解决方案1】:

    这是因为 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

    【讨论】:

    • 谢谢你,好吧,我照你说的做了。现在我收到了 metabox.php 目录中的其他错误,站点根本没有打开。比如 static function _is_post() static function _is_page() static function _is_post_or_page() static function _get_current_post_type() ... 有很多错误的行开始看起来像,我现在该怎么办?
    • function _import($post_id, $key, $value) { if (WPALCHEMY_MODE_ARRAY == $this->mode AND $key == $this->id) { // 使用 $wp_import 获取在传递之前访问原始 postmeta 数据 // 通过“plugins/wordpress-importer/wordpress-importer.php”中的“maybe_unserialize()” // 在“maybe_unserialize()”全局 $ 之后调用“import_post_meta”操作wp_import; foreach ( $wp_import->posts as $post ) {
    • if ( $post_id == $post['post_id'] ) { foreach( $post['postmeta'] as $meta ) { if ( $key == $meta['key'] ) { // 尝试修复损坏的序列化数据,特别是在 wordpress XML 导出 (WXR) 期间将 "\r\n" 转换为 "\n" // "maybe_unserialize()" 修复了一个 wordpress 错误,该错误会在期间对已序列化的数据进行双重序列化导出/导入
    • $value = preg_replace_callback('!s:(\d+):"(.*?)";!s', array($this, 'fix_serialized_string_type_callback'), stripslashes($meta['价值'] ) ); update_post_meta($post_id, $key, $value); } } } } } } 保护函数 fix_serialized_string_type_callback( $matches ); } { return sprintf( 's:%s:"%s";', strlen( $matches[2] ), $matches[2] ); }
    • 我认为您正在使用 wpalchemy 框架很长时间没有更新的主题。更新主题或框架。
    猜你喜欢
    • 2022-10-24
    • 2020-09-05
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多