Polylang 번역 플러그인은 무료로 제공되기 때문에 다국적 사이트를 만들기 위해 설치했습니다. 하지만 번역 버튼을 클릭하면 치명적인 오류가 발생하여 번역이 불가능한 상황입니다.
해당 증상을 정리하자면, 최근에 작성한 글들은 번역이 정상적으로 작동하는 반면, 예전에 작성한 글들은 번역 버튼을 클릭할 때 치명적인 오류가 발생하여 번역이 진행되지 않습니다. 제 추측으로는, 예전에 설치한 후 약 100개의 글을 번역한 경험이 있는데, 그 글들에서만 번역 오류가 발생하는 것 같습니다.
CyberPanel에서 오류 로그를 확인한 결과, Wpil_Model_Link라는 데이터로 인해 충돌이 발생하고 있음을 확인했습니다. 이전에 설치한 Internal Links Manager 플러그인이 예전에 번역한 데이터와 충돌하여 오류가 발생하고 있다는 사실을 알게 되었습니다.
Internal Links Manager 플러그인은 제거되었지만, 데이터베이스에 남아 있는 데이터로 인해 충돌이 발생했습니다. 이를 해결하기 위해 PhpMyAdmin에 접속하여 해당 데이터를 모두 삭제한 후 문제가 해결되었습니다.
특정 플러그인을 설치한 후 제거했지만 데이터가 남아 Polylang 플러그인과 충돌이 발생하는 경우, 아래의 방법을 참고하여 문제를 해결해 보시기 바랍니다. – 질문 게시물에서 찾은 해결 방법
목차
치명적인 오류 로그 확인
워드프레스에서 치명적인 오류가 발생했을 때, 가장 먼저 해야 할 일은 오류 로그를 확인하는 것입니다. 오류가 발생한 원인을 파악할 수 있기 때문에, 먼저 로그를 점검한 후 적절한 대처를 하는 것이 좋습니다.
패널을 설치하여 사용 중이라면, Logs 메뉴에서 Error Logs를 확인하면 위 이미지에서 보이는 것처럼 발생한 오류를 확인할 수 있습니다. 패널을 설치하지 않은 경우에는 아래의 방법을 따라 진행하시면 됩니다.
// 디버그 모드 활성화
define( 'WP_DEBUG', true );
// 디버그 로그 활성화 (wp-content/debug.log 파일에 저장)
define( 'WP_DEBUG_LOG', true );
// 오류를 화면에 출력 (개발 환경에서만 사용 권장)
define( 'WP_DEBUG_DISPLAY', false ); // true로 설정하면 화면에 오류 출력
@ini_set( 'display_errors', 0 );
// 스크립트 디버깅 활성화 (CSS/JS 오류 추적)
define( 'SCRIPT_DEBUG', true );
// 저장소 캐시 우회 (특정 플러그인/테마 관련 캐시 문제 해결 시 유용)
define( 'SAVEQUERIES', true );
패널을 설치하지 않은 경우, wp-config.php 파일에 위의 코드를 추가하면 디버그 모드가 활성화되어 오류를 확인할 수 있습니다.
Wpil_Model_Link 관련 데이터 삭제
Error Logs에서 Wpil_Model_Link와 관련된 데이터에서 치명적인 오류가 발생한 것을 확인했습니다. 따라서 해당 데이터를 삭제하는 것이 필요합니다. 데이터를 삭제할 때는 문제가 발생할 수 있으므로 반드시 백업을 해두는 것이 중요합니다.
데이터베이스를 삭제하려면 PhpMyAdmin에 접속해야 합니다. 패널이 설치된 경우, DataBases 메뉴로 이동하면 접속할 수 있는 서비스가 제공됩니다. 만약 패널이 설치되어 있지 않다면, PhpMyAdmin을 설치하여 접속하거나 플러그인을 통해 임시로 접근할 수 있습니다.
데이터베이스에서 관련 데이터 확인
PhpMyAdmin에 접속하셨다면, 왼쪽에 데이터베이스 목록이 표시됩니다. 여기서 워드프레스 관련 데이터베이스를 선택한 후, 상단 메뉴에서 ‘SQL’을 클릭하시면 됩니다.
SQL을 클릭하면 빈 공간이 나타납니다. 이곳에 Wpil_Model_Link 데이터를 확인하기 위한 아래의 명령어를 입력한 후, 오른쪽 하단에 있는 실행 버튼을 클릭하시면 됩니다.
SELECT * FROM wp_postmeta WHERE meta_value LIKE '%Wpil_Model_Link%';
위의 명령어를 입력하면 Wpil_Model_Link 데이터가 존재하는지 확인할 수 있습니다. 만약 남아있는 데이터가 있다면, 아래의 방법으로 삭제하실 수 있습니다.
관련 데이터 삭제하기
데이터가 남아 있다면 아래의 명령어를 입력한 후에 실행 버튼을 눌러서 삭제를 해주시면 됩니다.
DELETE FROM wp_postmeta WHERE meta_value LIKE '%Wpil_Model_Link%';
Wpil_Model_Link 데이터를 삭제한 후, 다시 워드프레스로 돌아가서 번역 기능이 정상적으로 작동하는지 확인해 보시기 바랍니다. 만약 여전히 작동하지 않는다면, 남아 있는 Polylang 데이터에 문제가 있을 수 있으니 이 부분도 정리해 보는 것이 좋습니다.
Polylang 데이터 삭제하기
Wpil_Model_Link 데이터를 삭제해도 여전히 치명적인 오류가 발생한다면 Polylang 플러그인 데이터를 삭제해 보는 것도 방법입니다. 여기서 중요한 점은 Polylang 데이터를 삭제할 경우 번역한 게시물, 설정 등 모든 것이 초기화되기 때문에 백업은 필수입니다.
DELETE FROM wp_options WHERE option_name LIKE 'pll_%';
DELETE FROM wp_postmeta WHERE meta_key LIKE '_pll_%';
DELETE FROM wp_termmeta WHERE meta_key LIKE '_pll_%';
DELETE FROM wp_terms WHERE slug LIKE 'pll_%';
DELETE FROM wp_term_taxonomy WHERE taxonomy LIKE 'language';
위에서 설명한 방법으로 PhpMyAdmin SQL에 위의 명령어를 입력하게 되면 Polylang 데이터가 모두 삭제됩니다.
결론
Polylang 플러그인을 사용하여 번역 사이트를 만들 때, 다른 플러그인과의 데이터 충돌로 인해 심각한 오류가 발생할 수 있습니다. 이럴 경우, 충돌을 일으키는 플러그인을 제거하고 관련 데이터를 삭제하는 방법으로 문제를 해결할 수 있습니다.
다시 한 번 강조하자면, 데이터베이스를 삭제할 때는 문제가 발생할 수 있으므로 반드시 백업을 하는 것이 중요합니다.