먼저, 이 과정 동안 곁을 지켜 주시고 세심한 조언을 아끼지 않으신 @angus님께 진심으로 감사의 말씀을 드립니다. 여러분의 지원은 저에게 큰 힘이 되었으며, 문제 해결을 위해 투자해 주신 시간과 노력에 진심으로 감사드립니다. 제가 조사하고 시도해 본 모든 과정을 공유드리니, 비슷한 문제를 겪고 계신 분들께 도움이 되길 바랍니다.
배경 및 초기 설정:
처음에는 Extol 테마를 사용했으며, 단일 게시물 페이지에 Discourse 댓글 블록을 직접 추가했습니다. 이 방식은 완벽하게 잘 작동했습니다. 그러나 Astra 테마로 전환한 후 상황이 복잡해졌습니다. Astra에는 몇 가지 제한 사항(예: 기본 단일 게시물 템플릿을 쉽게 편집할 수 없음)이 있어, Astra Site Builder 훅을 통해 Discourse 댓글 상자를 추가하고 표시 조건에 따라 게시물 아래에 배치했습니다.
대부분의 게시물에서는 원활하게 작동했지만, 특정 3개의 게시물에서는 Discourse 댓글 섹션이 두 번 표시되었습니다. 왜 다른 게시물들은 정상적으로 표시되는데 이 게시물들에서만 이런 일이 발생하는지 이유를 알 수 없었습니다. 이 이상 현상은 이전 Extol 설정의 잔재가 있을 수 있다는 생각을 하게 했지만, 결정적인 증거를 찾지는 못했습니다.
문제 탐구:
먼저 게시물 편집기를 확인하여 Discourse 댓글이 수동으로 활성화되거나 비활성화된 설정이나 블록이 있는지 살펴봤습니다. 놀랍게도 아무것도 없었습니다 — 추가 블록도, 다른 설정도 없었습니다.
다음으로, 추가된 댓글 섹션이 제거되는지 확인하기 위해 Astra Site Builder 훅을 비활성화해 봤습니다. 그러나 중복된 상자는 그대로 남아 있었습니다. 이는 중복이 Astra Site Builder 설정 외부에서 발생하고 있음을 시사했습니다.
그 후 WP Discourse 설정에서 “Enable Discourse Comments”를 비활성화해 봤습니다. 조언해 주신 대로 이 설정을 끄자 두 개의 댓글 섹션 모두 사라졌으며, 이는 두 섹션이 모두 이 통합을 통해 생성되고 있음을 시사했습니다.
다시 활성화한 후, 테마 파일들을 더 깊이 파고들었습니다. comments_template(); 함수를 명시적으로 호출하는 인스턴스가 있는지 single.php, content-single.php 및 기타 관련 템플릿 파일들을 검색해 봤습니다. unfortunately, 이 함수를 명시적으로 호출하는 코드를 찾지 못했습니다. 이는 저를 혼란스럽게 했습니다. PHP 템플릿 문제라면 왜 찾지 못하는 것일까요?
또한 커스텀 템플릿 여부도 확인해 봤습니다. 혹시 이 3개의 게시물이 다른 템플릿을 사용 중일까요? 이것도 확인할 수 없었습니다. 모든 것이 기본 설정을 가리키고 있었습니다.
또 다른 가설은 댓글 동기화와 관련이 있었습니다. 누군가가 Discourse 포럼에 댓글을 달면 관련 블로그 게시물 아래에 또 다른 댓글 섹션이 나타나는 것을 트리거할 수 있다는 것이었습니다. 이는 그럴듯해 보였지만, 이 동작과 직접적으로 연결되는 설정이나 문서를 찾지 못했습니다.
임시 CSS 수정으로 중복된 댓글 섹션을 숨기는 방법을 시도했습니다:
WP Theme Customizer의 Additional CSS에 CSS 추가
#comments {
display: none !important;
}
Astra 훅에 CSS 추가
#comments {
display: block !important;
}
이 방식은 작동했지만, 영구적인 해결책이 아님을 인정합니다. 근본 원인을 해결하는 것이 훨씬 낫다고 생각합니다.
생각과 가설:
Astra가 훅과 블록을 처리하는 방식에 더 깊은 문제가 있을 수 있다고 의심합니다. Discourse 댓글이 임베드되는 방식에서 충돌이나 중복이 발생할 수 있습니다.
다른 가능성으로는, 이전 Extol 테마에서 남은 숨겨진 설정이나 구성이 여전히 영향을 미치고 있을 수 있습니다.
또는 Discourse가 WordPress와 동기화되는 방식과 관련이 있을 수 있습니다. 포럼에서 댓글이 작성되면 WordPress 사이트 내에서 무언가를 트리거하여 그 추가 섹션을 생성할 수 있습니다.
아직 시도하지 않은 것들:
Astra 지원팀에 문의: 제안해 주신 대로, 이 방법을 시도해 볼 가치가 있을 것입니다. 그들은 비슷한 문제에 대해 알고 있거나, 테마가 댓글과 훅을 처리하는 방식에 대한 통찰을 제공할 수 있습니다.
WP Discourse를 제외한 모든 플러그인 비활성화: 다른 플러그인이 이 동작을 일으키고 있는지 격리하는 데 도움이 될 수 있습니다.
완전히 새로운 게시물로 테스트: 처음부터 새 게시물을 만들어 문제가 재현되는지 확인하면 무언가를 드러낼 수 있습니다.
다음 단계:
지금은 Astra 지원팀에 문의하고, 플러그인을 비활성화한 상태에서 더 많은 테스트를 실행하는 것을 고려하고 있습니다. 자식 테마를 사용하여 Discourse 댓글 섹션을 더 정확하게 수동으로 처리할 수 있는지 다른 접근 방식도 시도해 볼 수 있습니다.
다시 한번, Angus, 도와 주시고 인내심을 가져 주셔서 정말 감사합니다. 여러분의 통찰력은 매우 가치있었으며, 아직 해결하지는 못했지만 무엇이 일어나고 있는지 이해하는 데 한 걸음 더 가까워졌다고 느낍니다. 다른 분들 중 비슷한 문제에 대한 생각, 통찰, 또는 경험이 있으시다면 기꺼이 듣고 싶습니다!
제 생각에는 이 문제가 예상되는 현상입니다.
Astra 테마는 풀 사이트 에디팅(Full Site Editing) 기능을 지원하지 않으며 블록과 함께 작동하지 않습니다.
즉, Astra는 블록 테마가 아니므로 페이지를 커스터마이징하려면 서드파티 페이지 빌더(귀하의 경우 Elementor)를 사용해야 합니다.
Discourse 블록을 사용하여 원래의 Comment 블록을 대체하지 않으면 중복이 표시될 것입니다. Angus는 블록 테마를 가지고 있을 경우 어떻게 해야 하는지 그의 비디오에서 보여줍니다: WP Discourse Comments Block.
훅(hooks)을 사용하여 Discourse 블록을 추가할 때 코멘트 영역을 대체하는 것이 아니라, 특정 위치에 커스텀 코드를 배치하는 것입니다.
정말 감사합니다, @Arkshine!
드디어 네이티브 댓글 섹션이 더 이상 표시되지 않아요. 정말 긴 여정이었네요!
그리고 @angus님께도 진심으로 감사드립니다. 이 과정 동안 보여주신 인내, 안내, 그리고 깊은 통찰력은 정말 무척이나 가치있었습니다. 이 문제를 해결하는 데 도움을 주신 시간과 노고에 진심으로 감사드립니다.
다양한 설정을 테스트하고 블록 및 PHP 템플릿의 혼합 문제를 디버깅하는 등, 모든 것을 탐구했습니다. Astra 훅 비활성화부터 CSS 조정, 댓글 템플릿 확인, 그리고 왜 특정 게시물에만 문제가 발생하는지 추적하는 것까지. 시행착오의 롤러코스터였지만, 모든 단계가 시스템을 더 잘 이해하는 데 도움이 되었습니다.
전문 지식과 도움을 주려는 의지가 없었다면 불가능했을 것입니다. 여러분의 도움은 문제를 해결하는 것뿐 아니라 WordPress, Discourse, 테마 통합에 대해 많은 것을 배우게 해주었습니다. 정말 감사드립니다.
비슷한 문제를 겪고 있는 모든 분께: 테스트를 계속하고, 배우기를 멈추지 마세요. 그리고 도움을 요청하는 것을 주저하지 마세요. 커뮤니티는 정말 놀라워요!