기존 주제에 대한 프로그래매틱 링크 관련 간단한 질문

프론트엔드 폼을 사용해 WordPress에서 게시글을 생성하고, 이를 기존 Discourse 토픽과 연결해야 합니다.

제 계획은 WP 게시글을 추가하거나 수정할 때 ACF에 기존 토픽 URL을 입력하는 것입니다.

그 다음 다음 코드를 사용할 예정입니다.

add_action('acf/save_post', 'my_acf_save_post', 25);

my_acf_save_post 함수 안에서 다음을 실행할 것입니다.

protected function link_to_discourse_topic( $post_id, $topic_url )

이것은 여기에서 확인했습니다.

이 방향이 맞나요?

네, 올바른 방향으로 가고 있습니다. 큰 그림으로 보면, 해야 할 일은 다음과 같습니다.

  1. discourse에서 주제(토론) 정보를 가져옵니다 (이미 보유하고 있지 않은 경우)
  2. 관련 정보를 올바른 게시물 메타 필드에 저장합니다

링크해 주신 그 함수에서 연결을 만들어 주는 것이 바로 이 게시물 메타 필드입니다.

또한, 이를 더 쉽게 수행할 수 있도록(즉, 단일 공개 유틸리티 함수를 사용하여 이 목표를 달성할 수 있도록) 하는 작업을 제 WP Discourse 개발 일정에도 추가했습니다. 이 작업은 6월에 진행할 예정입니다.

lib/plugin_utilities.php와 lib/utilities.php에 있는 기존 유틸리티 함수들도 살펴보세요. 그리고 admin/discourse-sidebar/discourse-sidebar.php의 관련 link_topic 메서드도 확인해 보시기 바랍니다.

진행 상황을 알려주세요.

@Angus, 답변해 주셔서 감사합니다. 저는 PHP 초보 수준이라, 이 문제를 직접 작업하실 계획이시라면 기다리겠습니다.

또한 WP 플러그인에서 반복적으로 발생하는 오류가 있습니다. 별도 게시물이나 GitHub 이슈로 처리하시는 것이 좋을지 모르겠지만, 현재 상황은 다음과 같습니다:

포럼 주제와 연결된 WP 게시물을 열면 Discourse 블록에 링크가 표시되지 않습니다. 링크가 없는 것처럼 보입니다.

조건:
'새 주제 게시’를 통해 생성된 링크든, '기존 주제에 링크’를 통해 생성된 링크든 동일한 문제가 발생합니다.

제 WP 게시물은 CPT(커스텀 포스트 타입)입니다.

댓글 설정은 "댓글 링크 표시"로 되어 있습니다.

그 외 제 설치 환경에 특별한 점은 없습니다.

확인 사항:
Discourse 블록에 표시되지 않는 링크가 실제로는 존재한다는 것을 확인했습니다. 관리자 열(Admin columns)에서 링크를 볼 수 있고, 프론트엔드 링크를 클릭하면 포럼 게시물로 이동할 수 있기 때문입니다.

추가 정보 제공이나 테스트에 기꺼이 협조하겠습니다.

감사합니다, Richard

“게시할 포스트 유형(Post Types to Publish)” 게시 설정에 커스텀 포스트 유형을 추가했나요? 더 자세한 내용은 아래 링크를 참조하세요.

네. 언급했어야 했는데, 처음에는 모든 기능이 정상적으로 작동합니다. 새 주제에 게시하거나 기존 주제에 링크를 걸면 양방향 링크가 모두 정상적으로 작동하죠… 단, 한 가지 예외가 있습니다.

나중에 WP에서 게시물을 다시 편집하면, Discourse 블록에는 아무것도 연결되어 있지 않은 것처럼 보입니다. 하지만 WP 프론트엔드 링크는 여전히 올바른 포럼 주제로 이동하고, 포럼 주제 안의 링크도 여전히 올바른 WP 게시물로 이동합니다.

즉, 문제는 게시물을 다시 편집할 때 WP의 Discourse 블록에서만 발생합니다.

추가로 필요하신 정보가 있으면 알려주세요.

감사합니다. 몇 가지 더 질문이 있습니다.

  1. 브라우저 웹 인스펙터 콘솔에서 오류가 표시됩니까?

  2. 에디터를 표시한 상태에서 페이지를 전체 새로고침하면 어떤 일이 발생합니까?

자바스크립트 관련 문제인 것 같습니다. 이는 다른 플러그인이나 브라우저 확장 프로그램 등 다양한 원인에 의해 발생할 수 있습니다. 가능하면 문제를 좀 더 구체적으로 파악해 보겠습니다.

콘솔: 현재 페이지에서 노드를 찾을 수 없습니다

먼저 Discourse 블록에 Publishing Options / Pin Topic 및 Publish to Discourse 섹션이 표시됩니다. 그런 다음 Category 섹션이 나타납니다. 기존 링크는 표시되지 않습니다.

WP-Discourse, CPT, ACF를 제외한 모든 플러그인을 끄고 Brave 브라우저와 Edge 브라우저에서 확장 프로그램과 시ールド(Shields)를 모두 비활성화한 상태로 시도해 보았습니다. 여전히 Discourse 블록에서 기존 링크를 볼 수 없습니다.

일반 게시물과 CPT 게시물 간의 테스트를 진행 중입니다. 결과를 알려드리겠습니다.

이유는 잘 모르겠지만, 이제 링크가 Discourse 블록에 표시됩니다. 이 문제의 패턴을 찾으면 다시 알려드리겠습니다. 감사합니다.