포스트가 Discourse에 제대로 게시되지 않음 – API 응답에 영구 링크 누락

WordPress에서 Discourse로 게시물을 게시할 때 Discourse WordPress 플러그인에서 문제가 발생하고 있습니다.

문제 설명:

WordPress 사이트에서 새 게시물을 생성하고 게시하기 전에 Discourse 탭에서 “Discourse에 게시” 옵션을 선택하면, 게시물은 WordPress에 정상적으로 게시됩니다. 그러나 이때 Discourse 주제는 생성되지 않습니다.

이후 같은 게시물을 편집하고 다시 Discourse 탭으로 가서 **“새 주제”**를 클릭하여 Discourse에 게시하면, Discourse 사이트에서 게시물이 정상적으로 생성됩니다. 하지만 이 Discourse 주제는 원래의 WordPress 게시물과 연결되지 않습니다. 영구 링크(퍼malink) 관련성이나 게시물로 저장되는 메타데이터가 없습니다.

디버깅 결과:

디버깅 중에 다음 호출을 확인했습니다:
/wp-json/wp-discourse/v1/publish-topic

다음과 같은 응답이 반환됩니다:

{
“publish_response”: “success”,
“permalink”: “”
}

보시는 바와 같이 “permalink” 필드가 비어 있습니다. 이는 Discourse 주제가 생성되지만 WordPress 게시물로 다시 연결되지 않는(즉, permalink가 postmeta에 저장되지 않아 WP와 Discourse 간의 링크가 끊어지는) 핵심 원인으로 보입니다.

API 응답에서 permalink가 왜 비어 반환되는지 조사해 주실 수 있을까요? 플러그인 설정 오류인지, 아니면 게시 워크플로에 버그가 있는 건지 확인해 주시면 감사하겠습니다.

로그나 추가 정보가 필요하시면 알려주세요. 도움을 주셔서 감사합니다!

안녕하세요 @techops, WordPress의 WP Discourse > Logs에서 관련 로그를 공유해 주실 수 있을까요? 가능하다면 해당 뷰의 메타 파일도 함께 공유해 주세요.

Angus님, 안녕하세요.

빠른 답변 주셔서 감사합니다.

WordPress 대시보드에서 WP Discourse > Logs 섹션에는 로그가 없으며, 현재 로그 뷰가 비어 있습니다.

다만, 요청하신 메타 파일은 다음과 같습니다: Discourse meta - Google Docs

이 문제를 해결하는 데 도움이 될 수 있는 다른 정보가 필요하시면 말씀해 주세요.

감사합니다!

@techops 님, 감사합니다. 몇 가지 처리해 주셨으면 하는 사항이 있습니다.

발행 설정에서 이 옵션을 비활성화해 주세요.

게시 실패 시 이메일 알림 보내기

발행 설정에서 이 옵션이 활성화되어 있는지 확인해 주세요.

상세 발행 로그

게시용으로 설정된 게시 유형(post type)이 여러 개 있습니다.

post, event, groups, collections, podcast

어떤 게시 유형에서 이 문제가 발생하는지 알려 주실 수 있나요? post가 아니라면, 해당 게시 유형이 어떻게 설정되어 있는지 조금 더 자세히 설명해 주실 수 있을까요?

Angus님, 안녕하세요.
제안해 주신 설정을 적용했습니다:

  • 비활성화: Send Email Notification on Publish Failure
  • 활성화: Verbose Publication Logs

post 포스트 유형만 사용하고 있습니다.

설정을 업데이트한 후, Discourse에 새 게시글을 작성하고 게시했습니다. 생성된 로그는 다음과 같습니다:

[2025-04-22 15:58:12] publish.INFO: create_post.post_success {"wp_title":"test post 4","wp_author_id":"221","wp_post_id":15068} 
[2025-04-22 15:58:12] publish.INFO: create_post.body_valid {"wp_title":"test post 4","wp_author_id":"221","wp_post_id":15068} 
[2025-04-22 15:58:12] publish.INFO: create_post.after_publish {"post_id":15068,"remote_post_type":"create_post","discourse_post_id":"","discourse_topic_id":"6910","discourse_permalink":""} 

추가로 필요한 정보나 세부 사항이 있다면 알려주세요.

감사합니다!

공유해 주셔서 감사합니다. 로그는 정상적으로 보입니다. Wordpress 게시물이 게시된 후 Discourse 토픽이 생성되는 것을 확인할 수 있습니다. 정확히 어떤 문제가 발생하는지 확인해 주시겠어요? 다음과 같은 형식으로 설명해 주세요:

  1. Wordpress에서 게시물을 작성합니다.
  2. 게시물이 게시된 후 …를 확인해야 합니다.

이 단계에서는 기술적인 가정을 피하도록 노력해 주세요. 감사합니다!

안녕하세요, Angus,

WordPress에 게시글을 작성했습니다.
게시글이 게시된 후, 다음과 같은 동작을 기대하고 있습니다:

‘Discourse에 게시’ 체크박스가 선택된 경우, Discourse에 게시글이 생성되고, WordPress의 게시글과 링크가 연결되어야 합니다.

그러나 실제로는 Discourse에 게시글은 생성되지만, 링크가 즉시 사라집니다. 이후에는 수동으로 다시 생성해야 합니다.

감사합니다!

감사합니다. 다음 사항도 확인해 주실 수 있을까요?

  1. 어떤 WordPress 포스트 작성기를 사용 중이신가요? Classic(클래식)인지 Gutenberg(구텐버그)인지요? 또한 비표준 방식으로 포스트가 생성되고 있지는 않은가요? (예: “Gravity Forms Advanced Post Creation” 플러그인을 사용 중이시네요)
  2. 이 문제가 발생하는 WordPress 포스트와 Discourse 토픽의 예시를 공유해 주실 수 있을까요?
  3. WordPress 메타 필드를 수정하는 플러그인(예: Advanced Custom Fields)을 사용 중이신가요?

후속 조치를 위해 감사합니다. 자세한 내용은 다음과 같습니다:

  • 게시글 작성에 Gutenberg 편집기를 사용하고 있습니다.
  • Advanced Custom Fields와 같은 커스텀 필드 플러그인은 사용하지 않고 있습니다.
  • 문제 재현 영상을 녹화하여 검토해 주실 수 있도록 준비했습니다. 여기에서 확인하실 수 있습니다.

추가 정보나 추가 테스트가 필요하시면 알려 주세요.
도움이 된다면 임시 로그인 권한을 제공하여 직접 설정을 확인하실 수 있도록 할 수도 있습니다.

감사합니다!

영상을 촬영해 주셔서 감사합니다. 커스텀 게시 워크플로를 사용하여 게시물을 게시하고 있는 것으로 보입니다.

이것이 문제와 관련이 있을 수 있습니다.

이 커스텀 워크플로 없이 게시물을 게시해 보실 수 있나요? 이 문제를 해결하기 위한 방법은 단계별 배제법입니다. 사용자의 커스터마이징 중 하나가 WP Discourse의 게시 기능 세트와 호환되지 않을 가능성이 높습니다.

제안해 주셔서 감사합니다.
커스텀 워크플로우를 사용하지 않고 게시물을 직접 게시하는 것을 테스트해 보았지만, 불행히도 여전히 작동하지 않습니다.

좋아요, 그 방향으로 계속 진행해 주세요. 사용자 정의 설정 중 하나가 WP Discourse 플러그인이 주제가 게시될 때 post_id와 영구 링크를 저장하는 것을 막고 있을 가능성이 높습니다.

감사합니다, Angus.

원인을 찾았습니다. SmartCrawl SEO 플러그인이 WP Discourse와 충돌하고 있었습니다. SmartCrawl을 비활성화한 후, 게시물이 Discourse에 정상적으로 게시되고 WordPress 게시물과 올바르게 링크됩니다.

범인을 찾아서 잘하셨네요. 이 시점에서는 해당 지원팀에 이 문제를 공유하는 것이 도움이 될 수 있을 것 같습니다. 예를 들어, "귀하의 플러그인이 다른 플러그인이 표준 워드프레스 API를 사용하는 것을 막고 있는 것 같습니다…"라고 설명한 뒤, 구체적인 문제를 서술해 주세요. 이 주제를 그들에게 공유하는 것도 좋은 방법입니다.