기존의 WordPress 게시글이 이전에 포럼에도 게시되어 있었습니다.
어느 시점부터 저장 링크를 클릭하여 게시글을 업데이트할 때마다 다음 오류 메시지가 포함된 이메일을 받게 됩니다:
Discourse Publishing Failure
A post has failed to publish on Discourse from your site ...
...
Reason for failure:
A bad response was returned from Discourse.
Embed url wird bereits verwendet (translates to "is being used already")
게시글을 Discourse에서 연결 해제했습니다. 또한 포럼에서 해당 게시글도 삭제했습니다. 그럼에도 불구하고 게시글을 저장할 때마다 여전히 오류가 발생하고 있습니다. 또한 새 주제로 게시글을 게시하려고 해도 동일한 오류가 나타납니다.
플러그인에 버그가 있어, 자동 게시(Auto Publish) 설정이 활성화된 상태에서 블록 에디터로 게시물을 게시하면, WordPress에서 링크가 해제된 게시물을 Discourse에 다시 게시하려고 시도하는 문제가 발생하고 있었습니다. Discourse에 게시물을 게시할 때, 해당 임베드 URL이 이미 Discourse에서 사용 중이어서 게시가 실패했습니다. 이 문제는 어제 수정했지만, 수정 사항은 새로 링크가 해제된 게시물에만 적용됩니다. 과거에 링크가 해제된 게시물에 대한 문제도 해결할 수 있는 방법을 마련하겠습니다.
게시물이 링크에서 해제될 때, 플러그인이 Discourse의 해당 주제(topic) embed_url을 제거하지 않고 있습니다. 이로 인해 게시물을 링크에서 해제한 뒤 Discourse에 다시 게시하면 Embed url is already being used 오류가 발생하여 게시가 실패합니다. 이 부분도 수정하겠습니다.
Discourse에서 관련 주제를 삭제했다면, 오류 없이 게시물을 Discourse에 다시 게시할 수 있어야 합니다. 주제가 삭제될 때 Discourse에서 embed_url이 제대로 제거되는지 확인하겠습니다.
이번 주 후반 또는 주말에 플러그인을 업데이트할 예정입니다. 해당 업데이트를 통해 링크가 해제된 게시물과 관련된 문제를 해결할 수 있을 것입니다.
방금 WP Discourse 2.0.4 버전을 WordPress 저장소에 업로드했습니다. 이 버전은 2.0.3 미만의 플러그인 버전을 사용하던 사이트에서 Discourse와 연결이 해제된 게시글로 인해 발생하는 문제를 처리합니다. 이러한 게시글의 경우, 연결이 해제된 게시글을 처음 업데이트할 때 Embed url has already been taken 오류 메시지가 표시됩니다. 초기 업데이트 이후에는 더 이상 오류 메시지가 표시되지 않으며(또는 게시 오류 이메일이 전송되지 않습니다). 완벽한 해결책은 아니지만, 해당 문제를 해결하는 가장 좋은 방법입니다.
이미 해당 임베드 URL을 사용 중인 Discourse 토픽이 존재할 때 게시글을 Discourse로 게시하려고 하면 오류가 발생합니다. 해당 임베드 URL을 사용 중인 Discourse의 토픽을 삭제하면 토픽을 다시 게시할 수 있어야 합니다. Discourse는 WordPress 게시글과 연관된 토픽 임베드(Topic Embed)를 삭제하는 데 시간이 걸립니다. 이 시간 범위를 설정하는 요인이 무엇인지 여전히 확인이 필요합니다. 이 문제로 여전히 어려움을 겪고 있다면 알려주시기 바랍니다.
이상적으로는, WordPress 게시글이 Discourse 토픽에서 연결 해제될 때 해당 게시글과 연관된 embed_url도 Discourse에서 삭제되어야 합니다. 불행히도 현재 Discourse API를 통해 토픽의 embed_url을 제거하는 것은 불가능합니다. 미래에는 이것이 가능해질 수 있습니다. WP Discourse 플러그인에 도움이 될 더 작은 변경 사항은, Embed url has already been taken 오류 메시지를 반환할 때 Discourse가 topic_id도 함께 반환하도록 하는 것입니다. 이렇게 하면 WP Discourse 플러그인이 Discourse에서 문제를 일으키는 토픽이 어떤 것인지 사용자에게 알릴 수 있습니다.