Ошибка: Как исправить демо импорта для темы WordPress - PullRequest
0 голосов
/ 03 января 2019

при импорте демо в тему WordPress я получил следующее

"Предупреждение: preg_replace (): модификатор / e больше не поддерживается, вместо этого используйте preg_replace_callback в E: \ xampp \ htdocs \ wordpress \wp-content \ themes \ random \ framework \ включает \ wpalchemy \ MetaBox.php в строке 545 "ошибка.

Когда строка ярлыка для перехода к

"// пытается исправить поврежденные сериализованные данные, в частности," \ r \ n "преобразуется в" \ n "во время экспорта WordPress XML(WXR) // «Maybe_unserialize ()» исправляет ошибку WordPress, которая двойным образом сериализует уже сериализованные данные во время экспорта / импорта $ value = Maybe_unserialize (preg_replace ('! S: (\ d +): "(.', "' s: '. strlen (' $ 2 ').': \" $ 2 \ "; '", полоски ($ meta [' value '])));

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

уже былонаписано.

Что нужно сделать, чтобы исправить в этом случае. Если нет проблем с сохранением ошибки, она не будет ничего делать, потому что работает тема. Это было мое первое сообщение, поэтому я всегда буду помнить человекакто ответил. спасибо. С уважением

1 Ответ

0 голосов
/ 04 января 2019

Это из-за использования устаревшей функции 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

...