Discourse comments are not reflected on Wordpress blog 게시글에서 이어지는 논의입니다:
안녕하세요. 테스트를 위해 로컬 PC에 Discourse 3.4.0 (4abee26a32)과 WordPress 6.7.2를 새로 설치했는데, WordPress에서 Discourse로의 초기 게시글 동기화는 되는 반면, Discourse에서 WordPress로의 댓글 동기화가 되지 않습니다. 제 문제는 위 링크된 훨씬 오래된 보고서와 매우 유사해 보입니다. 회귀(regression) 문제일 수 있을까요?
모든 로그 기록을 활성화했는데, 제 WordPress 인스턴스의 로그에서 확인되는 내용은 다음과 같습니다:
[2025-02-26 21:24:55] connection.INFO: check_connection_status.successful_connection
[2025-02-26 21:24:55] connection.INFO: check_connection_status.valid_scopes
[2025-02-26 21:28:49] publish.INFO: create_post.post_success {"wp_title":"This is a test","wp_author_id":"1","wp_post_id":7}
[2025-02-26 21:28:49] publish.INFO: create_post.body_valid {"wp_title":"This is a test","wp_author_id":"1","wp_post_id":7}
[2025-02-26 21:28:49] publish.INFO: create_post.after_publish {"post_id":7,"remote_post_type":"create_post","discourse_post_id":"34","discourse_topic_id":"16","discourse_permalink":"https://discourse.cs.siue.edu/t/this-is-a-test/16"}
[2025-02-26 21:28:49] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"7"}
[2025-02-26 21:29:27] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"7"}
[2025-02-26 21:53:39] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"7"}
그리고 제 WordPress 게시글의 댓글 섹션에서 확인되는 내용은 다음과 같습니다:
응답 개수는 즉시 증가하지만, 실제 댓글은 보이지 않습니다. 또한 /var/log/php-fpm/www-error.log 시스템 로그에서도 오류가 표시되지 않습니다.
이 문제를 일으키는 원인이 무엇인지, 또는 어떻게 디버깅해야 하는지에 대해 아이디어가 있는 분이 계신가요? 감사합니다.
angus
(Angus McLeod)
2월 27, 2025, 11:07오전
2
안녕하세요 @Gregory_Bartholomew , 이 문제가 회귀(regression)가 아님을 확신합니다. 로컬 환경에서 이 문제를 일으킬 수 있는 요인을 함께 점검해 보겠습니다.
어떤 테마를 사용 중인가요?
블록 활성화 테마인가요?
테마를 커스터마이징했나요?
WP Discourse 플러그인에서 어떤 설정을 활성화했나요 (로그의 meta 파일을 공유해 주시면 좋겠습니다).
Jagster
(Jakke Flemming)
2월 27, 2025, 12:44오후
3
어떤 시점에는 워드프레스에서 댓글 기능을 활성화하면 정확히 그런 일이 발생했습니다. 최소 1년 전의 일이고, 그 동작이 변경되었는지 아니면 테마에 따라 달라지는 문제인지 확인해 본 적이 없습니다.
angus
(Angus McLeod)
2월 27, 2025, 12:57오후
4
유사한 문제를 겪고 계신 경우, 병렬로 조사를 진행할 수 있습니다. 동일한 질문에 대한 답변을 공유해 주실 수 있으신가요?
Angus McLeod:
어떤 테마를 사용 중이신가요?
블록 활성화 테마인가요?
테마를 커스터마이징하셨나요?
WP Discourse 플러그인에 대해 어떤 설정을 활성화하셨나요 (로그에서 meta 파일을 공유해 주시면 좋겠습니다).
Jagster
(Jakke Flemming)
2월 27, 2025, 1:01오후
5
가능은 하지만, 워드프레스 댓글 기능을 비활성화한 후에는 아무 문제가 되지 않았습니다. OP의 문제는 워드프레스 댓글이 디스커스를 덮어쓴다는 점입니다. 그리고 간단한 해결책도 있을 수 있습니다 — 해당 게시물을 디스커스에 연결하지 않는 것이죠
angus
(Angus McLeod)
2월 27, 2025, 1:08오후
6
알겠습니다. 당신의 문제는 @Gregory_Bartholomew의 문제와 달랐을 수 있습니다. 그의 환경 설정에 대해 좀 더 구체적인 정보를 확인하고 그 문제의 원인을 파악해 보겠습니다. 각 문제는 새롭게 다뤄져야 합니다.
Jagster
(Jakke Flemming)
2월 27, 2025, 1:17오후
7
음, 저는 현재 진행 중인 문제가 없습니다. 어떤 상황에서도 WordPress의 네이티브 댓글 기능을 사용하지 않기 때문이죠. Discourse가 이 부분을 아주 잘 처리해 줍니다. 제 생각은 그저 약한 해결책 아이디어에 불과했고, 설정 문제를 유발할 수 있습니다
WordPress의 내장 댓글 시스템을 어떻게든 비활성화해야 한다는 말씀이신가요?
Angus McLeod:
어떤 테마를 사용하고 계신가요?
현재 기본 twentytwentyfive 테마를 사용 중입니다.
Angus McLeod:
블록 기반 테마인가요?
네, 그렇습니다. 또한 (아마 무관할 것 같지만), 기본 테마에 작은 버그가 있어 index.html 파일을 로드하고 다시 저장해야 했습니다. 문제와 해결 방법은 여기 에 문서화되어 있습니다.
Angus McLeod:
테마를 커스터마이징했나요?
위에서 언급한, 겉보기에는 무관해 보이는 오류를 수정하기 위한 우회 조치 외에는 테마에 대한 어떠한 커스터마이징도 하지 않았습니다.
Angus McLeod:
WP Discourse 플러그인에 대해 어떤 설정을 활성화했나요? (로그의 meta 파일을 공유해 주셔도 좋습니다.)
네, 로그 페이지의 meta 출력 결과를 여기에 첨부합니다.
### This file is included in log downloads ###
### Server ###
WordPress - 6.7.2
PHP - 8.3.17
MySQL - 10.11.10
### Active Plugins ###
Fedora SSR Endpoint - 1.3.0
WP-Discourse - 2.5.6
### WP Discourse Settings (Secrets Excluded) ###
connection-logs - 1
display-subcategories - 0
allow-tags - 0
max-tags - 5
publish-as-unlisted - 0
full-post-content - 0
custom-excerpt-length - 55
add-featured-link - 0
auto-publish - 1
force-publish - 0
force-publish-max-age - 0
publish-failure-notice - 0
auto-track - 1
allowed_post_types - post
exclude_tags -
hide-discourse-name-field - 0
discourse-username-editable - 0
direct-db-publication-flags - 0
verbose-publication-logs - 1
enable-discourse-comments - 1
comment-type - display-comments
ajax-load - 0
load-comment-css - 0
discourse-new-tab - 0
hide-wordpress-comments - 0
show-existing-comments - 0
max-comments - 5
min-replies - 1
min-score - 0
min-trust-level - 1
bypass-trust-level-score - 50
only-show-moderator-liked - 0
custom-datetime-format -
cache-html - 0
clear-cached-comment-html - 0
verbose-comment-logs - 1
use-discourse-webhook - 1
webhook-match-old-topics - 0
use-discourse-user-webhook - 0
webhook-match-user-email - 0
verbose-webhook-logs - 1
enable-sso - 0
auto-create-sso-user - 0
real-name-as-discourse-name - 0
force-avatar-update - 0
redirect-without-login - 0
sso-client-enabled - 0
sso-client-login-form-change - 0
sso-client-sync-by-email - 0
sso-client-disable-create-user - 0
sso-client-sync-logout - 0
logs-enabled - 1
메타 출력에서 발견한 작은 부정확성 하나는, 제가 “MySQL” 대신 그 포크 버전인 “MariaDB”(mariadb-server-10.11.10-1.fc41.x86_64)를 사용하고 있다는 점입니다. 또한, php-mysqlnd 패키지도 설치되어 있습니다(php-mysqlnd-8.3.17-1.fc41.x86_64).
angus
(Angus McLeod)
2월 27, 2025, 3:09오후
9
그 세부 정보를 알려주셔서 감사합니다 @Gregory_Bartholomew . 블록 활성화 테마이므로 WP Discourse Comments Block을 사용해 보셨나요?
From version 2.4.7, the WP Discourse Plugin includes a Discourse Comments block for the Block Editor. The Discourse Comments block is primary way to add Discourse Comments to a block-enabled theme such as Twenty Twenty Three. Here’s a short video on how to use the Discourse Comments block
Next Step
If you haven’t yet, make sure you check out:
Using Discourse for Wordpress Comments
Notes
The Discourse Comments block does not currently support the “Load Comments With Ajax” setting.
To learn…
네, 그 영상을 확인했고 상단의 체크박스를 이미 활성화했습니다:
angus
(Angus McLeod)
2월 27, 2025, 3:17오후
11
확인 차 말씀드리자면, 디자인 > 편집기로 가서 단일 게시물 템플레이트를 열고 템플릿에 WP Discourse 블록을 추가하신 건 맞으신가요?
아니요, 그런 일을 한 기억이 없어요. 영상에서 놓친 것 같네요. 지금 바로 해볼게요. 감사합니다!
음, 처음에는 괜찮아 보였는데, 메인 인덱스 페이지로 돌아가기 위해 "view site"를 클릭했을 때 사이트가 충돌했습니다.
php-fpm 로그 내용:
[27-Feb-2025 15:21:37 UTC] PHP Fatal error: Uncaught Error: Call to undefined function WPDiscourse\Shared\mb_convert_encoding() in /wordpress/wp-content/plugins/wp-discourse/lib/template-functions.php:335
Stack trace:
#0 /wordpress/wp-content/plugins/wp-discourse/lib/discourse-comment-formatter.php(136): WPDiscourse\DiscourseCommentFormatter\DiscourseCommentFormatter->fix_avatars_in_quotes()
#1 /wordpress/wp-content/plugins/wp-discourse/lib/discourse-comment.php(312): WPDiscourse\DiscourseCommentFormatter\DiscourseCommentFormatter->format()
#2 /wordpress/wp-content/plugins/wp-discourse/blocks/comments/comments.php(34): WPDiscourse\DiscourseComment\DiscourseComment->comments_template()
#3 /wordpress/wp-includes/class-wp-block.php(537): render_block_wpdc_comments()
#4 /wordpress/wp-includes/class-wp-block.php(517): WP_Block->render()
#5 /wordpress/wp-includes/class-wp-block.php(517): WP_Block->render()
#6 /wordpress/wp-includes/blocks/post-template.php(123): WP_Block->render()
#7 /wordpress/wp-includes/class-wp-block.php(537): render_block_core_post_template()
#8 /wordpress/wp-includes/class-wp-block.php(517): WP_Block->render()
#9 /wordpress/wp-includes/class-wp-block.php(517): WP_Block->render()
#10 /wordpress/wp-includes/blocks.php(2191): WP_Block->render()
#11 /wordpress/wp-includes/blocks.php(2243): render_block()
#12 /wordpress/wp-includes/block-template.php(263): do_blocks()
#13 /wordpress/wp-includes/template-canvas.php(12): get_the_block_template_html()
#14 /wordpress/wp-includes/template-loader.php(106): include('...')
#15 /wordpress/wp-blog-header.php(19): require_once('...')
#16 /wordpress/index.php(17): require('...')
#17 {main}
thrown in /wordpress/wp-content/plugins/wp-discourse/lib/template-functions.php on line 335
수정1: mb_convert_encoding() 함수가 정의되지 않았다고 나옵니다. 누락된 PHP 패키지를 설치해야 하나요?
수정2: 네, 그게 전부였습니다. php-mbstring을 설치해야 했네요. 이제 모든 것이 정상적으로 작동하는 것 같습니다. 감사합니다!
여전히 발견되고 있는 작은 문제 중 하나는 이모지와 아바타가 표시되지 않는 것 같습니다:
아마도 아직 무언가를 설정해야 하는 것 같습니다?
Discourse 쪽에서는 제 아바타가 기본 원 안에 들어간 글자로만 표시됩니다:
또한 Discourse 쪽에서도 이모지가 제대로 표시되지 않는 것 같지만, 최종적으로 사용하려고 하는 프로덕션 Discourse 인스턴스를 관리하지 않기 때문에 이 문제는 덜 신경 쓰고 있습니다.
수정: 아바타 문제는 신경 쓰지 않아도 될 것 같습니다. 제 환경 설정 방식 때문인 것 같습니다. WordPress를 포트 3000으로 지정해 두었는데, 아바타는 http://localhost:4200/letter_avatar_proxy/v4/letter/...로 해석되고 있습니다. 아마 그냥 비활성화할 것 같습니다.