Discourse 댓글 입력창이 두 번 표시됨

2개의 discourse 댓글 상자가 표시되고 있습니다.

플랫폼: WordPress
테마: Astra

이전에 extol 테마를 사용하다가 Astra로 전환했습니다. Astra 사이트 빌더를 통해 댓글 섹션 후크를 추가하고, 표시 조건을 설정하여 게시물 아래에 배치했습니다.

모든 블로그 게시물에서 댓글 섹션이 정상적으로 표시되지만, 3개의 게시물만 예외입니다(이 3개 게시물에서는 discourse 댓글 섹션이 두 번 표시됩니다).

도움을 주실 수 있는 분 계신가요?

안녕하세요. 이 문제는 테마 관련이거나, “Astra Site Builder” 사용 방식에 문제가 있는 것으로 보입니다. 하지만 그럼에도 불구하고 도움을 드릴 수 있는지 확인해 보겠습니다.

이것이 어떤 모습인지 좀 더 자세히 설명해 주실 수 있을까요? 코드를 사용하셨나요? "Astra Site Builder"의 문서 링크를 공유해 주실 수 있나요? 블록 사용이 가능한 테마인가요? 가능한 한 많은 세부 정보를 제공해 주십시오.

@angus 님, 빠른 답변 감사합니다.

사실 코드를 편집할 때 코드가 전혀 보이지 않습니다. 저는 테마 기본 단일 게시물 템플릿을 사용 중인데, 이 템플릿에는 discourse 댓글 코드가 포함되어 있지 않아야 합니다.

이상하게도 다음 게시물들에서만 이런 문제가 발생하고 있습니다: Strange thing is this happening with only following posts: - Pastebin.com [pastebin을 확인해 주세요. 링크를 추가해 두었습니다]

다른 게시물들은 astra 사이트 빌더로 추가한 댓글 상자만 표시됩니다.

네, astra는 블록 활성화 테마입니다. 문서 링크는 다음과 같습니다: Docs - Astra

WP Discourse Comments 블록을 사용하셨나요?

네, Astra 사이트 빌더에서 WP Discourse 댓글 블록을 사용했습니다. Astra 사이트 빌더의 후크를 비활성화해도 여전히 게시물 아래에 이 추가적인 Discourse 댓글 상자가 표시됩니다.

이전에는 extol 테마를 사용했습니다. 단일 게시글 페이지에 Discourse 댓글 블록을 추가했습니다.

이후 Astra로 전환했습니다.

Astra에는 몇 가지 제한 사항이 있어 기본 단일 게시글 템플릿을 수정할 수 없습니다. 그래서 Astra 사이트 빌더 훅을 통해 Discourse 댓글 상자를 추가했는데, 완벽하게 작동하고 있습니다.

Astra 사이트 빌더 훅을 비활성화해도 여전히 이 3개의 페이지에서 Discourse 댓글 상자가 표시됩니다. 게시글에 댓글 블록을 추가하지 않았는데, 어디서 이렇게 표시되는지 정말로 파악할 수 없습니다.

WP Discourse > Comments에서 “Enable Discourse Comments” 설정을 비활성화하고, 그렇게 했을 때 어떤 효과가 있는지 알려주세요 (설정 변경을 저장했는지 꼭 확인하세요).

이 설정을 비활성화하면 두 개의 댓글 상자가 모두 사라집니다.

좋아요, 다시 활성화할 수 있습니다.

문제는 현재 사용 중인 테마와 사이트 빌더 조합에 따라, 같은 페이지에 PHP 포스트 템플릿과 블록 포스트 템플릿이 둘 다 존재한다는 점입니다(이것은 일반적인 상황이 아닙니다). 이것이 바로 해당 문제가 발생하는 이유입니다.

두 템플릿을 단일 페이지에서 모두 로드하려면 포스트 PHP 템플릿에서 comments_template 줄을 제거해야 합니다.

PHP에서 온 것이라면, 왜 특정 3개의 게시물에서만 보이는지 궁금합니다.
single.php 파일에서 comments_template을 찾을 수 없었어요. :cry:

커스터마이저 설정에서 댓글을 비활성화하면 댓글 입력창만 사라집니다. 여전히 Discourse 댓글 입력창이 표시됩니다.

아직도 해결하지 못했습니다.

디스코urses 포럼 스레드에 누군가 댓글을 달면 관련 블로그 게시물 아래에 새 댓글 섹션이 나타납니다. comments_template을(를) 찾을 수 없었습니다.

이와 관련된 기사나 영상 튜토리얼을 추천해 주시겠습니까?

@angus

추가 CSS를 사용하여 댓글 섹션을 숨기고 있습니다.

이는 임시적인 해결책입니다. 더 효과적인 방법이 있다면 알려주세요. 적용하겠습니다.

사용 중인 PHP 템플릿에 이 문제를 일으키는 댓글 템플릿 함수 호출이 포함되어 있습니다. 다음과 같은 형태일 것입니다.

<?php comments_template(); ?> 

해당 함수가 어디에 위치하는지는 사용하는 PHP 템플릿에 따라 달라집니다. 이 함수를 찾으면 문제를 해결할 수 있습니다. 불행히도 저희나 관련 글에서 더 많은 도움을 드리기 어렵습니다.

제안할 수 있는 유일한 다른 방법은 “Astra” 지원팀에 문의하는 것입니다. 여기의 근본적인 문제는 PHP 템플릿과 블록의 조합입니다. 아마도 그들이 이 부분에 대해 더 명확하게 설명해 줄 수 있을 것입니다.

먼저, 이 과정 동안 곁을 지켜 주시고 세심한 조언을 아끼지 않으신 @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, 도와 주시고 인내심을 가져 주셔서 정말 감사합니다. 여러분의 통찰력은 매우 가치있었으며, 아직 해결하지는 못했지만 무엇이 일어나고 있는지 이해하는 데 한 걸음 더 가까워졌다고 느낍니다. 다른 분들 중 비슷한 문제에 대한 생각, 통찰, 또는 경험이 있으시다면 기꺼이 듣고 싶습니다!

계속 파고들고 있으며, 새로운 것을 발견하면 여기에 업데이트하겠습니다. 감사합니다!

혹시 Show Existing WP Comments 설정이 활성화되어 있나요?

설정을 활성화/비활성화해 보았지만, 추가된 Discourse 댓글 박스에 어떤 영향도 없었습니다.

@Arkshine 님, 감사합니다.

실수했습니다. 잘못된 이슈를 보고 있었네요!

제가 이 하나만 말씀하시는 줄 알았어요:


제 생각에는 이 문제가 예상되는 현상입니다.
Astra 테마는 풀 사이트 에디팅(Full Site Editing) 기능을 지원하지 않으며 블록과 함께 작동하지 않습니다.
즉, Astra는 블록 테마가 아니므로 페이지를 커스터마이징하려면 서드파티 페이지 빌더(귀하의 경우 Elementor)를 사용해야 합니다.

Discourse 블록을 사용하여 원래의 Comment 블록을 대체하지 않으면 중복이 표시될 것입니다. Angus는 블록 테마를 가지고 있을 경우 어떻게 해야 하는지 그의 비디오에서 보여줍니다: WP Discourse Comments Block.

훅(hooks)을 사용하여 Discourse 블록을 추가할 때 코멘트 영역을 대체하는 것이 아니라, 특정 위치에 커스텀 코드를 배치하는 것입니다.


해결 방법은 무엇일까요?

Astra 훅의 외형/위치를 선호하신다면, 네이티브 WP 코멘트 영역을 제거하는 방법이 있습니다. 이 PHP 코드를 추가할 수 있습니다. 방법이 필요하시다면 How to Add Custom PHP Code in the Astra Theme? 를 참조하세요.

add_action(
	'init',
	function() {
		if ( class_exists( 'Astra_Loop' ) ) {
			remove_action( 'astra_template_parts_content', array( Astra_Loop::get_instance(), 'template_parts_comments' ), 15 );
		}
	},
	11
);

도움이 되셨으면 좋겠습니다!

정말 감사합니다, @Arkshine! :tada:
드디어 네이티브 댓글 섹션이 더 이상 표시되지 않아요. 정말 긴 여정이었네요!

그리고 @angus님께도 진심으로 감사드립니다. 이 과정 동안 보여주신 인내, 안내, 그리고 깊은 통찰력은 정말 무척이나 가치있었습니다. 이 문제를 해결하는 데 도움을 주신 시간과 노고에 진심으로 감사드립니다.

다양한 설정을 테스트하고 블록 및 PHP 템플릿의 혼합 문제를 디버깅하는 등, 모든 것을 탐구했습니다. Astra 훅 비활성화부터 CSS 조정, 댓글 템플릿 확인, 그리고 왜 특정 게시물에만 문제가 발생하는지 추적하는 것까지. 시행착오의 롤러코스터였지만, 모든 단계가 시스템을 더 잘 이해하는 데 도움이 되었습니다.

전문 지식과 도움을 주려는 의지가 없었다면 불가능했을 것입니다. 여러분의 도움은 문제를 해결하는 것뿐 아니라 WordPress, Discourse, 테마 통합에 대해 많은 것을 배우게 해주었습니다. 정말 감사드립니다.

비슷한 문제를 겪고 있는 모든 분께: 테스트를 계속하고, 배우기를 멈추지 마세요. 그리고 도움을 요청하는 것을 주저하지 마세요. 커뮤니티는 정말 놀라워요! :rocket: