저희는 WP 댓글 대신 Discourse를 사용하고 있습니다(“Remove WordPress Comments Template” 체크박스와 Ajax가 모두 활성화되어 있습니다). Toolset Access control를 사용하여 Discourse에 게시되는 커스텀 포스트 타입에 접근 제어를 설정하고 있습니다(접근 제어와 일치하는 비공개 카테고리로 게시). 일반적으로 이러한 유형의 제어는 게시물의 댓글 표시에도 영향을 미치지만, Discourse 댓글의 표시에는 영향을 주지 않고 있습니다. 혹시 아이디어가 있으신가요?
여기에 추가적인 맥락을 덧붙일 수 있을 것 같습니다:
저희 WordPress 사이트에는 비공개 커스텀 포스트 유형이 있으며, 이 포스트들은 비공개 Discourse 카테고리의 주제들과 연결되어야 합니다. Discourse 카테고리에 접근 권한이 있는 사용자는 WordPress의 해당 포스트에도 접근할 수 있습니다. 이 부분은 WordPress에서 해당 사용자를 편집자(Editor) 역할로 지정하고, Discourse에서는 비공개 카테고리에 접근할 수 있는 그룹에 소속시킴으로써 처리하고 있습니다.
어떤 경우에도 인증되지 않은 사용자는 WordPress의 포스트나 Discourse의 주제 스레드 중 어느 것도 볼 수 없어야 합니다. 이는 각각 역할 및 그룹 접근 제어에 의해서 의도대로 작동하고 있습니다. WordPress 측에서는 위에서 언급했듯이 Toolset Access를 사용하여 이 커스텀 포스트 유형의 모든 포스트에 대한 접근을 제한하고 있습니다.
그러나 Discourse의 비공개 토론 스레드는 WordPress에 임베드되어 공개적으로 표시되고 있으며, 포스트 콘텐츠 자체는 숨겨져 있음에도 불구하고 그렇습니다. 다시 말해, 임베드된 Discourse 댓글은 접근 제어에 의해 숨겨지지 않고 있습니다. 이 출력이 제어 범위를 벗어나게 만드는 원인이 무엇인지, 그리고 이를 어떻게 수정할 수 있는지 파악하려고 노력하고 있습니다.
WP Discourse 플러그인은 커스텀 댓글 템플릿을 로드하여 댓글을 표시합니다. 이를 위해 WordPress의 comments_template 필터를 사용하여 커스텀 템플릿을 로드합니다. 포스트 유형에 Toolset 액세스 제어가 설정되어 있음에도 불구하고 댓글이 여전히 로드되는 이유는 확실하지 않습니다. 해당 문제에 대해 조사해 보겠습니다.
비공개 Discourse 카테고리에 게시된 포스트의 댓글을 로드하지 않도록 하는 옵션을 플러그인에 추가해야 한다고 생각합니다. 이 옵션이 활성화되면 Discourse 주제에 대한 링크만 표시될 것입니다. 다만 이것이 현재 겪고 계신 문제를 해결할 수 있을지는 확신할 수 없습니다.
시몬님, 저는 @Kayla와 함께 이 작업을 진행 중입니다. 여기에서 설명하신 내용은 우리의 문제를 해결해 줄 것 같습니다.
또한, 우리의 더 세분화된 액세스 제어 내에서 Discourse 댓글 템플릿을 포함하는 방법도 알면 좋겠습니다. 감사합니다!
좋습니다! 그 기능이 플러그인의 다음 업데이트에 포함되는 데 문제가 없을 것 같습니다. 이번 주 안에 처리해 보겠습니다. 진행 상황에 대해 계속 알려드리겠습니다.
당신이 겪고 있는 문제는 WP Discourse가 WordPress의 comments_template 필터 훅에 연결되는 우선순위와 관련이 있는 것 같습니다. WP Discourse 플러그인은 이 필터에 연결하는 함수를 호출할 때 우선순위 20을 사용하고 있습니다. Toolset 플러그인은 보호된 페이지에서 댓글 템플릿이 로드되는 것을 방지하기 위해 더 낮은 우선순위로 해당 필터에 연결하고 있을 가능성이 높습니다.
이 문제에 대해 Toolset 측에 문의해 보았으며, 제가 예상했던 동작 방식에 대해 오해하고 있었던 것으로 확인되었습니다. Toolset Access 플러그인은 댓글 템플로트에 전혀 연결되지 않습니다. 제한된 콘텐츠에서 댓글을 숨기려면 테마 레벨에서 댓글 템플로트의 렌더링을 억제/허용하기 위해 toolset_access_api_get_post_permissions 필터에 커스텀 코드를 연결해야 합니다. 콘텐츠 제한이 콘텐츠 템플로트 자체에 관한 것임을 깨닫지 못했던 점에 대해 사과드립니다. ![]()
이 옵션은 플러그인 버전 2.0.7에 추가되었습니다. 현재 WordPress 저장소에서 사용할 수 있습니다.
플러그인의 ‘Discourse 댓글 활성화’ 옵션을 선택하면 이제 댓글 유형에 대한 세 가지 옵션을 볼 수 있습니다:
공개 주제에 대한 댓글만 표시하려면 ‘공개 주제에 댓글 표시’ 옵션을 선택하십시오. 주제가 비공개 카테고리에 게시된 경우, 주제에 대한 링크와 해당 주제의 댓글 _개수_가 표시됩니다.
WordPress에서 Discourse로 게시된 주제가 Discourse에서 공개 카테고리에서 비공개 카테고리로 이동되면, WordPress에서 댓글이 제거되고 링크로 대체됩니다. WP Discourse 플러그인이 Discourse에서 반환된 댓글 데이터를 캐시하기 때문에 이 변경 사항이 반영되기까지 최대 10분까지 걸릴 수 있습니다. 플러그인의 게시 설정 페이지에서 ‘카테고리 업데이트 강제’ 옵션을 선택하고 해당 설정 페이지를 저장하면 카테고리 캐시를 즉시 무효화할 수 있습니다.
플러그인이 Discourse 하위 카테고리의 권한에 액세스할 수 있도록 하려면, 플러그인의 게시 설정 탭에서 ‘하위 카테고리 표시’ 옵션을 선택해야 합니다. 이 옵션이 활성화되어 있지 않고 ‘공개 주제에 댓글 표시’ 옵션이 활성화된 경우, Discourse의 모든 하위 카테고리는 비공개로 간주되며 댓글 대신 링크가 표시됩니다.
참고: Discourse에서 직접 수행된 카테고리 변경 사항을 플러그인이 인식하는 기능은 최신 버전의 Discourse를 사용하는 사이트에서만 사용할 수 있습니다.
Discourse 댓글이 표시되는 사용자를 프로그래밍 방식으로 제어하려면, wpdc_load_comments_template_for_user 필터 훅을 사용하여 특정 사용자의 WP Discourse 댓글 로드를 완전히 우회할 수 있습니다. 이 훅에는 세 개의 인자가 전달됩니다: $load_template (기본값은 true), $current_user, 그리고 $post_id. 필터에 연결된 함수에서 false를 반환하면 특정 사용자의 댓글 로드가 방지됩니다.
이번 업데이트로 확인되는 변화는 discourse_replies_html은 정상적으로 로드되고 예상대로 표시되지만, discourse_no_replies_html은 로드되지 않는 것 같습니다. (“토론 참여 링크: 댓글 없음” 텍스트 링크는 보이지만, 저희 템플릿은 표시되지 않습니다.) 또한, 게시글이 Discourse에 게시되지 않은 경우 새로운 메시지가 표시됩니다: “이 게시글에 대한 댓글은 현재 사용할 수 없습니다.” 모두 공개 카테고리 대상의 공개 게시글입니다.
비공개 Discourse 카테고리에 게시된 게시글의 경우, 기본 WP 댓글 양식이 로드되는 것 같습니다. Discourse 주제에 대한 링크는 없습니다.
"공개 주제에 대한 댓글 표시"와 “하위 카테고리 표시” 설정은 모두 활성화되어 있습니다. 캐시된 댓글 HTML을 지우고 카테고리 업데이트를 강제 실행했습니다. 놓치고 있는 부분이 있을까요?
리포트해 주셔서 감사합니다! 이 문제는 WP Discourse 버전 2.0.8에서 수정되어야 합니다.
오늘 늦거나 내일 플러그인에 몇 가지 변경 사항을 적용할 예정입니다. 이는 귀하가 보고 중인 다른 문제들을 해결하는 데 도움이 될 것입니다. 디스커스에 게시되지 않은 게시물의 경우 워드프레스 댓글 템플릿이 로드되지 않는 문제는 즉시 수정되어야 했습니다.
“공개 주제에 대한 댓글 표시” 옵션과 “기존 WP 댓글 표시” 옵션을 선택한 후 기존 WordPress 댓글이 있는 게시물을 게시했을 때 제가 확인한 내용은 다음과 같습니다:
사용자의 관점에서 볼 때 이는 매우 명확하지 않아 보입니다(이는 WordPress 커스터마이징을 통해 수정할 수 있습니다) 하지만 Discourse 댓글에 대한 링크는 존재합니다.
“Cache Comment HTML” 사이트 설정을 활성화했다면, 이를 비활성화해 보십시오. 해당 설정이 문제를 일으키지는 않아야 하지만, 체크를 해제하면 이 문제를 디버깅하는 데 도움이 됩니다.
이 문제에 대해 추가로 알고 계신 세부 사항이 있다면 보내 주세요. 오늘 늦게 WordPress 저장소에 “Unlink Topic” 버튼 관련 문제를 수정하기 위한 작은 업데이트를 배포할 예정입니다. 이 문제는 WordPress 5.5 릴리스에서 발생하고 있습니다.
현재 WP 5.5 환경에서 버전 2.1.1을 사용하고 있습니다. 댓글 캐싱은 꺼져 있으며, WP 내장 댓글 기능을 사용하지 않고 있습니다(다만 이제 기본 양식이 로드되지 않는 것을 보니 그 점은 좋습니다).
그러나 커스텀 템플릿이 때로는 로드되고 때로는 로드되지 않습니다. Discourse 토픽이 비공개인지 여부와 관계없이 모든 게시글에 댓글을 표시하도록 되돌렸지만, 문제가 해결되지 않았습니다. 원인을 파악할 수 없는데, 개별 게시글마다 문제가 지속되는 것 같습니다. 공개 토픽의 공개 게시글 예시:
댓글 없음, discourse_no_replies_html 로드 안 됨:
댓글 없음, discourse_no_replies_html 로드됨:
댓글 있음, discourse_replies_html 로드 안 됨
댓글 있음, discourse_replies_html 로드됨
이 문제가 커스텀 템플릿과 관련이 있을 수 있지만, 댓글 템플릿이 로드되지 않고 대신 댓글 링크가 표시되는 문제에 대한 다른 보고도 있습니다. 제 개발 사이트에서는 문제를 재현할 수 없지만, 이 문제를 해결할 수 있도록 플러그인에 작은 변경 사항을 적용할 예정입니다. 내일 아침까지 준비가 완료될 것입니다. 이 문제에 대한 인내심을 가져주셔서 감사합니다!
플러그인을 버전 2.1.2로 업데이트해 보시고, 문제가 해결되는지 알려 주시겠어요?
2.1.2로 업데이트하면 템플릿 로딩 문제가 해결된다는 것을 확인했습니다. 감사합니다!

