워드프레스 5.0.3 업데이트 이후 class-wp-block-parser.php 오류 해결 방법

제 블로그를 워드프레스 5.0.3으로 업데이트 하였더니 블로그 본문과 에디터에서 아래와 같은 오류 메세지를 표시하고 있었습니다.

Warning: preg_match() [function.preg-match]: Compilation failed: unrecognized character after (?< at offset 10 in /—/—/—/—/wp-includes/class-wp-block-parser.php on line 418

 

class-wp-block-praser.php의 418 라인에서 문제가 발생하였고, 해당 라인의 수정 전 내용은 아래와 같았습니다.

$has_match = preg_match(
‘/<!–\s+(?<closer>\/)?wp:(?<namespace>[a-z][a-z0-9_-]*\/)?(?<name>[a-z][a-z0-9_-]*)\s+(?<attrs>{(?:(?:[^}]+|}+(?=})|(?!}\s+\/?–>).)*+)?}\s+)?(?<void>\/)?–>/s’,
$this->document,
$matches,
PREG_OFFSET_CAPTURE,
$this->offset

 

여기서 (?<xxxx>) 부분을 (?P<xxxx>)로 바꿔주면 문제를 해결할 수 있습니다. 수정 후 내용은 아래와 같습니다.

$has_match = preg_match(
‘/<!–\s+(?P<closer>\/)?wp:(?P<namespace>[a-z][a-z0-9_-]*\/)?(?P<name>[a-z][a-z0-9_-]*)\s+(?P<attrs>{(?:(?:[^}]+|}+(?=})|(?!}\s+\/?–>).)*+)?}\s+)?(?P<void>\/)?–>/s’,
$this->document,
$matches,
PREG_OFFSET_CAPTURE,
$this->offset

 

오류 수정 관련 후기 및 참고 포스팅

국내 워드프레스 이용자가 적은 편이어서 그런지 구글 한국어 검색을 해봐도 국내 워드프레스 이용자 중에서는 이와 같은 문제 발생에 대한 해결 방법을 명쾌히 올려놓은 게시글을 찾기가 참 어려웠습니다. 오류가 발생한 블로그는 몇군데 찾아볼 수 있었는데 해결방법을 적어놓은 곳은 없더군요.

결국 해외로 눈을 돌렸는데, 다행히 일본의 광고제작회사에서 재직중인 한 일본인 블로거의 블로그 포스팅에 적힌 도움 댓글 덕분에 해결할 수 있었습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.