최근 저희 WP 사이트에서 댓글이 없는 것처럼 표시되는 게시물을 발견했습니다. 하지만 Discourse에서는 댓글이 달렸다는 걸 알고 있었거든요. 해당 주제에 또 다른 댓글을 달아보았지만, 이 역시 표시되지 않았습니다. 그런데 다른 게시물들은 정상적으로 댓글을 받고 있습니다. 해당 게시물에서 특별하거나 이상한 점은 보이지 않습니다.
이 문제를 디버깅하기 위해 제가 할 수 있는 것이 있을까요?
최근 저희 WP 사이트에서 댓글이 없는 것처럼 표시되는 게시물을 발견했습니다. 하지만 Discourse에서는 댓글이 달렸다는 걸 알고 있었거든요. 해당 주제에 또 다른 댓글을 달아보았지만, 이 역시 표시되지 않았습니다. 그런데 다른 게시물들은 정상적으로 댓글을 받고 있습니다. 해당 게시물에서 특별하거나 이상한 점은 보이지 않습니다.
이 문제를 디버깅하기 위해 제가 할 수 있는 것이 있을까요?
게시물의 댓글이 플러그인의 ‘댓글 작성 옵션(Commenting options)’ 탭에서 설정한 기준을 충족하는지 확인하세요. 게시물의 댓글이 WordPress로 가져와져야 할 것 같다면, 사이트에서 게시물의 ‘사용자 정의 필드(Custom Fields)’ 화면 옵션을 활성화하여 문제를 디버깅할 수 있습니다:
이 작업을 완료하면 편집 화면 하단에 게시물의 메타데이터 목록이 표시됩니다. discourse_permalink과 discourse_topic_id 필드가 관련 있는 Discourse 주제와 일치하는지 확인하세요. 이 필드가 없다면 게시물이 Discourse에서 연결 해제되었을 수 있습니다. Discourse 메타 박스에서 ‘기존 주제에 링크(Link to Existing Topic)’ 라디오 입력을 선택하여 연결이 해제된 게시물을 다시 연결할 수 있습니다.
고맙습니다.
사정이 더 기묘해졌습니다. 방금 새로 작성된 게시물에 댓글이 달리는 모습을 지켜보았습니다. 우리 WP 사이트의 홈 페이지에는 해당 게시물에 댓글이 1개 달린 것으로 즉시 표시되었습니다. 지금까지는 잘 되고 있었습니다. 그런데 게시물로 이동해 보니, 상단 정보에는 댓글이 1개 있는 것으로 표시되어 있었습니다.
댓글 수를 클릭해 페이지의 해당 위치로 스크롤을 내렸는데, "토론에 참여하세요"라고 표시될 줄 알았는데 "토론을 시작하세요"라고 표시되었습니다. (우리는 실제로 댓글을 표시하지 않고, 댓글 수와 Discourse 인스턴스로의 링크만 표시합니다.) 페이지를 새로고침하면 해결될 줄 알았는데, 새로고침 후에도 여전히 댓글이 0개라고 표시되었습니다. 그리고 홈 페이지도 다시 0개로 갱신되었습니다.
discourse_topic_id와 discourse_permalink을 확인해 보니 둘 다 정확합니다. 하지만 다른 discourse 필드들은 저에게는 잘 이해가 되지 않습니다.
discourse_comments_count에는 '0’이 표시되어 있습니다.
discourse_comments_raw에는 다음과 같은 내용이 포함되어 있습니다:
{"id":1399,"posts_count":2,"filtered_posts_count":0,"posts":[],"participants":[{"id":11,"username":"nathan","name":"Nathan ","avatar_template":"https://www.ourdiscourse.com/user_avatar/www.ourdiscourse.com/nathan/{size}/182_2.png"},{"id":103,"username":"Zak","name":"Zak","avatar_template":"https://www.ourdiscourse.com/user_avatar/www.ourdiscourse.com/zak/{size}/652_2.png"}]}
또한, discourse_post_id가 무엇을 의미하는지 파악할 수 없습니다. 하지만 포함된 4자리 숫자만 봐서는 WP 게시물 ID일 것으로 예상했는데, 그렇지 않았습니다. 이 필드는 원래 무엇을 나타내야 하나요?
Discourse 토픽이 공개되어 있다면 링크를 개인 메시지로 보내주실 수 있나요?
WP Discourse의 ‘Unlisted Topics로 게시’ 옵션을 활성화해 두셨나요? discourse_comments_raw 메타데이터에서 posts_count와 filtered_posts_count의 차이는 해당 토픽에 작은 액션 게시물이 두 개 있음을 시사합니다. posts_count와 filtered_posts_count 사이에 불일치가 있을 때 WP Discourse의 웹훅 새로고침 기능에 문제가 발생합니다. 이 부분은 제가 처리할 예정이지만, 댓글을 받지 못하는 게시물과 관련된 문제와는 무관하다고 생각합니다.
댓글을 받지 못하는 게시물에 관한 문제와 관련하여, 해당 게시물의 Discourse 토픽 링크가 표시되지 않는다는 말씀이신가요, 아니면 링크가 ‘토론 시작하기’ 대신 '토론 참여하기’로 표시되는 것이 문제인가요?
그렇습니다.
댓글 수가 0이면 그럴 수 있겠네요. 걱정하지 않으셔도 됩니다. 그냥 제가 눈에 띄어서 페이지를 새로고침했는데, 댓글 수가 다시 0으로 내려간 것을 발견했을 뿐입니다.
아, 그리고 질문하신 내용에 대해 말씀드리자면…
아니요.
“wpdc_sync_post_comments” 필드의 올바른 값은 무엇인가요?
여전히 이 문제로 고생하고 있습니다.
게시물이 하나 있는 주제로 이동해 보았습니다. WP 프런트엔드에서 댓글 수는 "1"이어야 하는데 0으로 표시되었습니다. wpdc_sync_post_comments 값은 "0"이었습니다. 이는 T/F 플래그라고 가정하고, 1로 설정되어야 한다고 생각하여 값을 변경하고 게시물을 저장했습니다. WP 프런트엔드를 새로 고쳤지만 아무 변화가 없었습니다. 그래서 Discourse 주제에 새 게시물을 남기고 즉시 WP 페이지를 새로 고쳤더니, 댓글 수가 올바르게 "2"로 증가했습니다. 하지만 즉시 페이지를 다시 새로 고쳤더니 다시 "0"으로 떨어졌습니다! 편집 화면에서 확인해 보니 wpdc_sync_post_comments 값이 다시 0으로 설정되어 있었고
discourse_comments_count == 0
discourse_comments_raw ===
{"id":1451,"posts_count":3,"filtered_posts_count":1,"posts":[],"participants":[ (생략)
다른 게시물은 다음과 같습니다:
discourse_comments_count == 3
discourse_comments_raw ===
{"id":1447,"posts_count":17,"filtered_posts_count":4,"posts":[],"participants": (생략)
상세한 정보 감사합니다!
해당 필드가 1로 설정되면, 페이지가 로드될 때 댓글이 동기화됩니다. 댓글 동기화가 완료되면 wpdc_sync_post_comments의 값은 다시 0으로 설정됩니다.
게시하신 메타데이터를 살펴본 결과, 플러그인이 댓글 수에서 1을 빼야 할 상황이 아닌데도 빼고 있는 것으로 보입니다. 지난 며칠간 여행 중이었으며, 내일 출근해서 이 문제를 자세히 살펴보겠습니다.