안녕하세요, WP Discourse 플러그인에서 웹사이트에 문제가 있는 것 같아 확인해 보았습니다.
기본적으로 블로그 게시물을 게시하고 Discourse 포럼에 성공적으로 게시된 후, 약 1주일 후 게시물을 약간 수정하여 업데이트하면 WP Discourse 플러그인이 해당 게시물을 다시 포럼에 게시하려고 시도합니다.
그런 다음 "Discourse Publishing Failure"라는 제목의 이메일을 받게 되는데, 그 내용에는 임베드 URL이 이미 사용 중이라고 나와 있습니다.
Wordpress에서 매우 오래된 게시물을 업데이트할 때도 같은 문제가 발생하는 것을 확인했습니다. 해당 게시물이 Discourse 포럼의 기본 카테고리인 "News"에 표시되어 독자들을 혼란스럽게 합니다.
이 문제를 재현해봐 주되, 변경 사항(1주일 후, 또는 일반적인 시간 경과)을 적용하기 전에 포스트 편집 화면 오른쪽의 WordPress 유틸리티 바에서 Discourse 포스트 상태를 확인해줘. 편집을 진행하는 시점에 거기에 무엇이 표시되는지 알려주고, 편집 후 방금 설명한 동작이 발생하는지도 알려줘.
게시물을 업데이트하려고 했으나 동일한 오류가 발생했습니다. 실패에 대한 동일한 이메일도 받았습니다.
로그의 마지막 오류는 다음과 같습니다:
[2024-05-13 18:02:53] publish.ERROR: create_post.post_error {"wp_title":"Nextcloud exhibiting at global events in May 2024","wp_author_id":"9","wp_post_id":209030,"response_message":"Embed url has already been taken","http_code":422}
게시물이 이미 Discourse에 있는 경우 재게시 시도를 비활성화할 수 있는 옵션이 설정 페이지에 있어야 하지 않나요?
음, 이는 WordPress 인스턴스가 WP Discourse 플러그인이 게시물 메타 필드를 올바르게 저장하지 못하게 하고 있다는 뜻입니다. 이는 가장 가능성이 높게 사이트의 다른 플러그인이나 테마로 인해 발생하는 문제입니다. WP Discourse 로그 다운로드를 공유해 주실 수 있을까요? 여기에는 원인을 추정할 수 있는 플러그인 목록이 포함되어 있습니다.
보통 플러그인은 첫 게시 후 게시 세부 정보를 저장합니다. 하지만 귀하의 사이트에서는 이 작업이 수행되지 않고 있습니다. 우리가 알아내야 할 부분이 바로 이것입니다
이 옵션은 플러그인이 사용자 정의 필드를 저장하는 방식을 변경하며, 사용자의 경우에서 동작에 영향을 미칠 수 있습니다. 문제가 해결되지는 않겠지만, 더 많은 통찰력을 얻을 수 있을 것입니다. 옵션을 활성화하신 후, 동일한 상황을 재현해 보아 주세요.
이 과정을 거친 후에는 개별 플러그인을 비활성화하여 문제를 분리할 수 있는지 확인하겠습니다. 혹시 스테이징 사이트(실제 데이터는 없지만 테마와 플러그인이 설치된 사이트)를 가지고 계신가요?
또한 플러그인의 게시 로직에 더 많은 로깅을 추가하여 이 유형의 문제(즉, Discourse로 게시된 후 WordPress에서 메타데이터가 저장되는 과정)를 명확히 파악하는 데 도움이 되도록 하겠습니다. 하지만 이 작업에는 시간이 좀 걸릴 것이므로, 그 동안 위에서 언급한 테스트를 수행할 수 있습니다.
해당 설정을 활성화했지만 문제가 여전히 발생하고 있습니다.
실제로 스테이징 웹사이트를 사용 중인데, 재미있는 점은 플러그인, 테마, 파일이 완전히 동일함에도 동작 방식이 다르다는 것입니다. 즉, 테스트 게시글을 게시하면 Discourse에 정상적으로 전송되지만, 같은 게시글로 돌아오면 Discourse 사이드바 설정에서 "임베드 URL이 이미 사용 중입니다"라는 오류가 표시되지 않습니다. 대신 다음과 같이 표시됩니다:
맞아요. 테마 안의 db_version() 함수를 다시 확인해 보니 실제로 결과가 5.5.5로 나왔습니다. 하지만 ‘사이트 상태’ 백엔드 페이지에서는 10.6.16-MariaDB 버전이 표시되는데, 시스템 관리자가 말씀해 주신 버전과 동일합니다. 즉, WordPress가 인식하는 버전도 이 10.6.16-MariaDB가 맞아야 하는 거 아닌가요?