wordpress 구성 후 페이지를 이동할 때 아래와 같은 Deprecated: stripos() ~~ 라는 에러 메시지가 뜨는 페이지가 보인 후 다른 페이지로 넘어가는 현상을 보였다. 구글링을 해보니 조금만 수정하면 해결이 가능하였다.
Deprecated: stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /config/www/wordpress/wp-includes/functions.wp-scripts.php on line 133
우선 /config/www/wordpress/wp-includes/functions.wp-scripts.php 파일의 133 라인의 코드는 아래와 같다.
if ( false !== stripos( $data, '</style>' ) ) {
php 8.1 부터는 $data가 null 일 경우 string 메소드(이 경우 stripos())에 사용할 수 없기 때문에 위와 같은 에러가 발생하는 것이다. 그러므로 이 부분 코드를 아래와 같이 수정해줘야 한다.
if ( false !== stripos( $data ?? '', '</style>' ) ) {
간단하게 설명하면, stripos() 메소드에 $data를 전달하기 전에 해당 값이 null 인지 체크를 해 null 값일 경우 빈 값으로 변환해서 전달하는 것이다. 이렇게 수정하면 에러가 발생하지 않는다.
반응형