커스텀 포스트 유형을 게시하면 빈 화면으로 보이는 디버깅 문제

WP Discourse: advanced custom filter for discourse_publish_format_html - #12 by Kayla 에 다른 커스텀 포스트 유형에 대한 IF 섹션을 하나 더 추가하고 있습니다. 이 커스텀 포스트 유형은 최근 주제인 Filtering the available categories for a custom post type 에서 특정 Discourse 토픽으로 제한하고 자동으로 게시하기를 원했던 것과 동일한 것입니다. 게시글은 올바른 토픽으로 자동으로 게시되고 있지만, discourse_publish_format_html에 포함하려고 시도한 커스텀 필드들은 값이 비어 있는 상태로 넘어오고 있습니다. 모든 필드 이름을 여러 번 확인해 보았지만, 필드 값 자체를 제외한 모든 것이 Discourse로 정상적으로 넘어오는 것으로 보입니다.

이러한 요인 중 어떤 것이 원인이 될 수 있는지 궁금합니다?

  1. CPT가 Gravity Forms Advanced Post Creation Add-On 플러그인을 통해 Wordpress에서 생성되었습니다.
  2. CPT에 Toolset Access가 적용되어 있어 편집자만 해당 게시글을 볼 수 있으며, WP 상태는 '게시됨(published)'입니다.
  3. CPT가 비공개 Discourse 카테고리로 게시되고 있습니다.

Discourse로 정상적으로 넘어오는 부분은 포스트/토픽 제목, {author} 및 {blogurl}입니다. 아마도 {excerpt}도 커스텀 필드와 함께 빈 값으로 반환되는 것이 핵심 문제일까요?

업데이트: Toolset Access를 완전히 비활성화하고/또는 Gravity Form 대신 WordPress를 통해 게시물을 생성해도 빈 커스텀 필드 문제가 해결되지 않았습니다. 대신 {excerpt}는 정상적으로 표시되기 시작했습니다…

정리하자면, Toolset Access는 {excerpt}와 관련된 이 차이점에 영향을 미치지 않는 것 같습니다.

WP 관리자 화면에서 게시물을 생성하면 {excerpt}가 정상적으로 표시됩니다(게시물은 블록 에디터를 사용 중입니다). 반면 Gravity Form을 통해 생성하면 {excerpt}가 빈 값으로 게시됩니다(Gavity Form은 WYSIWYG 필드를 담기 위해 “클래식” 블록을 생성합니다).

사용자 정의 필드(단일 줄, 다중 줄, 숫자)는 게시물이 어떻게 생성되었든 항상 빈 값으로 반환됩니다.

게시물을 게시한 후, 편집기의 Discourse 사이드바에서 이와 유사한 알림을 보고 계신가요?

‘성공’ 메시지가 표시되지 않지만 게시물이 게시되었다면, 문제는 사용자 정의 게시 유형 설정에 있습니다.

‘성공’ 메시지가 표시된다면, 사용자 정의 필드는 get_post_meta( $post_id, 'your_meta_key_name', true );를 사용하여 반환할 수 있는 게시 메타데이터로 사용할 수 있어야 합니다. 무슨 일이 일어나고 있는지 파악하는 가장 쉬운 방법은 cosmos_custom_publish_format_html 함수에서 debug.log 파일에 기록하는 것입니다.

이번 주에는 직장에 출근하지 않아, 평소보다 질문에 답변하는 속도가 느릴 수 있습니다.

드디어 원인을 좁혀 보았습니다. 문제는 자동 게시 옵션(이것도 새로운 요인인데, 간과하고 있었습니다)에서 오는 것 같습니다. 이 옵션을 해제하고, 먼저 WordPress에서 게시물을 게시한 다음에 Discourse로 게시하면, 커스텀 필드가 Discourse로 정상적으로 전달되어 올바르게 표시됩니다. 또는 자동 게시를 허용하는 경우, WordPress에서 'Update Discourse Topic’을 클릭하면 필드가 Discourse에 표시됩니다. 따라서 게시물이 자동으로 게시될 때, 커스텀 필드의 데이터가 WordPress에 제대로 저장되기 전에 게시가 이루어지는 것으로 보입니다.