워드프레스를 기반으로 다국적 사이트를 운영하는 분들 중 Polylang 플러그인을 사용하는 경우가 많습니다. Polylang은 무료로 제공되며, 손쉽게 다국어 사이트를 구축할 수 있는 강력한 도구입니다. 하지만 이번에 저는 Polylang을 사용하는 중에 치명적인 오류를 겪었고, 이를 해결한 경험을 공유하고자 합니다.
문제 상황
Polylang 번역 플러그인을 설치한 후, 새로운 게시물의 번역은 정상적으로 작동했지만, 이전에 작성한 게시물의 번역 버튼을 클릭하면 치명적인 오류가 발생하는 상황에 직면했습니다. 특히, 과거에 작성한 약 100개의 게시물에서 동일한 문제가 발생했습니다.
오류를 추적한 결과, 과거에 설치한 Internal Links Manager라는 플러그인의 데이터가 Polylang과 충돌을 일으키고 있음을 확인했습니다. 비록 Internal Links Manager 플러그인을 이미 삭제했지만, 데이터베이스에는 여전히 관련 데이터가 남아 있었고, 이로 인해 오류가 발생했던 것입니다.
오류 해결 과정
1. 오류 로그 확인
워드프레스에서 치명적인 오류가 발생하면 가장 먼저 해야 할 일은 오류 로그를 확인하는 것입니다. CyberPanel을 사용 중이라면 Error Logs 메뉴를 통해 다음과 같이 오류를 확인할 수 있습니다:
Error: Uncaught Exception: Wpil_Model_Link 관련 데이터 충돌
만약 CyberPanel을 사용하지 않는다면, wp-config.php 파일에 디버그 모드를 활성화하여 오류를 확인할 수 있습니다. 아래 코드를 추가하여 디버그 모드를 활성화하세요:
// 디버그 모드 활성화
define( 'WP_DEBUG', true );
// 디버그 로그 활성화
define( 'WP_DEBUG_LOG', true );
// 오류를 화면에 출력 (개발 환경에서만 사용 권장)
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
활성화 후 wp-content/debug.log 파일에서 오류 내용을 확인할 수 있습니다.
2. 데이터베이스에서 문제 데이터 확인
오류의 원인이 Wpil_Model_Link 데이터와 관련이 있음을 알게 되었습니다. 이 데이터를 삭제하려면 PhpMyAdmin에 접속해야 합니다. PhpMyAdmin에서 데이터베이스를 선택한 뒤, SQL 명령어를 실행하여 관련 데이터를 확인합니다.
SELECT * FROM wp_postmeta WHERE meta_value LIKE '%Wpil_Model_Link%';
이 명령어를 실행하면 Wpil_Model_Link와 관련된 데이터 목록이 나타납니다.
3. 문제 데이터 삭제
확인된 데이터를 삭제하려면 아래 SQL 명령어를 실행합니다:
DELETE FROM wp_postmeta WHERE meta_value LIKE '%Wpil_Model_Link%';
데이터를 삭제한 뒤, 워드프레스로 돌아가 번역 기능이 정상적으로 작동하는지 확인합니다.
4. Polylang 관련 데이터 삭제 (선택 사항)
만약 위의 과정을 통해 문제를 해결하지 못했다면, 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';
이후 Polylang을 재설치하고 번역 기능을 다시 설정합니다.
해결 결과
위 과정을 통해 데이터베이스에 남아 있던 Wpil_Model_Link 데이터를 삭제한 후, Polylang 플러그인의 번역 기능이 정상적으로 작동하는 것을 확인했습니다. 특히, 이전에 번역이 불가능했던 게시물들도 문제없이 번역할 수 있었습니다.
주의사항
- 백업 필수: 데이터베이스 작업 전에는 반드시 백업을 해야 합니다. 예상치 못한 실수로 중요한 데이터가 손실될 수 있습니다.
- 충돌 원인 분석: 오류 로그를 통해 문제의 원인을 정확히 분석하고 해결해야 합니다. 단순히 플러그인을 삭제하는 것만으로는 문제가 해결되지 않을 수 있습니다.
- 플러그인 관리: 필요하지 않은 플러그인은 삭제 후에도 잔여 데이터가 남아있을 수 있으니, 데이터베이스를 정기적으로 점검하는 것이 좋습니다.
결론
Polylang과 같은 번역 플러그인은 다국적 사이트 구축에 필수적이지만, 다른 플러그인과의 충돌로 인해 문제가 발생할 수 있습니다. 이번 사례는 Internal Links Manager의 데이터가 Polylang과 충돌하여 번역 오류를 유발한 상황이었습니다. 이를 해결하기 위해 데이터베이스를 점검하고 충돌 데이터를 삭제하는 방법을 사용했습니다.
워드프레스를 사용하며 비슷한 문제를 겪는 분들에게 이 글이 도움이 되길 바랍니다.
'IT' 카테고리의 다른 글
워드프레스 위젯을 클래식 버전으로 변경하는 방법: 2가지 안내 (0) | 2025.01.17 |
---|---|
브라우저 ‘액세스 허용’ 팝업이 나올 때 설정 방법 (0) | 2025.01.17 |
OpenLiteSpeed 웹 서버에 HTTP/3 프로토콜을 적용하는 방법 (0) | 2025.01.17 |
불필요한 텍스트 한 번에 제거하기: 워드프레스 활용 팁 (0) | 2025.01.17 |
AMP for WP 플러그인을 이용한 자동 광고 적용 가이드 (0) | 2025.01.17 |