WordPress 사이트에서 Discourse를 사용하여 로그인하고 WordPress에 댓글을 달고 있습니다.
WordPress를 항상 다른 서버에서 실행해 왔는데, 새로운 IP와 다른 서버로 WordPress를 이전한 시점까지 모든 것이 정상적으로 작동했습니다.
이후부터는 아래 이미지에 설정이 표시된 클래식 편집기에서 작성된 게시물이 자동 게시된 후에도 Discourse 링크가 생성되지 않는 문제가 발생하기 시작했습니다.
항상 특정 게시물에 수동으로 들어가서 게시물을 번역(또는 수정)하면 Discourse 링크가 생성되고 모든 것이 정상으로 돌아옵니다.
이 문제의 원인을 어디에서 찾아봐야 할지 아이디어가 있을까요?
문제가 어디에 있는지 단서를 알려주는 분이 있을까요?
로그에서 발견한 유일한 에러 언급은 이것뿐인데, 이 메시지에 대해 아무것도 추적해내지 못했습니다.
[2024-06-14 06:45:38] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"771554"}
[2024-06-14 06:45:43] publish.INFO: create_post.post_success {"wp_title":"Konec ikonického designu. Galaxy Buds 3 dostanou zcela nový vzhled","wp_author_id":"94147","wp_post_id":771981}
[2024-06-14 06:45:43] publish.INFO: create_post.body_valid {"wp_title":"Konec ikonického designu. Galaxy Buds 3 dostanou zcela nový vzhled","wp_author_id":"94147","wp_post_id":771981}
[2024-06-14 06:45:43] publish.INFO: create_post.after_publish {"post_id":771981,"remote_post_type":"create_post","discourse_post_id":"10416","discourse_topic_id":"5899","discourse_permalink":"https://komunita.svetandroida.cz/t/konec-ikonickeho-designu-galaxy-buds-3-dostanou-zcela-novy-vzhled/5899"}
[2024-06-14 06:45:43] webhook_topic.ERROR: update_topic_content.response_body_error
아마도 Meta에서 update_topic_content.response_body_error를 검색해 볼 가치가 있을 겁니다
angus
(Angus McLeod)
6월 17, 2024, 8:42오전
4
안녕하세요 @Petr_Mišák
해당 토픽의 예시를 가지고 계신가요? 로그의 예시를 보면 Discourse 토픽이 성공적으로 게시되었음을 보여줍니다. 아래 로그 라인이 의미하는 바가 바로 그것입니다.
[2024-06-14 06:45:43] publish.INFO: create_post.post_success {"wp_title":"Konec ikonického designu. Galaxy Buds 3 dostanou zcela nový vzhled","wp_author_id":"94147","wp_post_id":771981}
[2024-06-14 06:45:43] publish.INFO: create_post.body_valid {"wp_title":"Konec ikonického designu. Galaxy Buds 3 dostanou zcela nový vzhled","wp_author_id":"94147","wp_post_id":771981}
[2024-06-14 06:45:43] publish.INFO: create_post.after_publish {"post_id":771981,"remote_post_type":"create_post","discourse_post_id":"10416","discourse_topic_id":"5899","discourse_permalink":"https://komunita.svetandroida.cz/t/konec-ikonickeho-designu-galaxy-buds-3-dostanou-zcela-novy-vzhled/5899"}
해당 로그의 마지막 줄에서 성공적으로 게시된 토픽의 링크를 확인하실 수 있습니다. 즉,
"discourse_permalink":"https://komunita.svetandroida.cz/t/konec-ikonickeho-designu-galaxy-buds-3-dostanou-zcela-novy-vzhled/5899"
그 직후 보이는 웹훅 오류는 웹훅 자체에 문제가 있음을 시사하지만, 게시 과정 자체에 문제가 있음을 의미하는 것은 아닙니다.
문제를 재현하는 새로운 테스트를 실행해 보시고, 생성된 publish 로그를 확인해 주시면 말씀하신 문제에 대한 통찰을 얻을 수 있을 것입니다.
또한, "기사를 번역하다"라는 표현이 정확히 무엇을 의미하는지 공유해 주실 수 있을까요?
저는 항상 특정 기사로 들어가서 기사를 번역해야만 합니다
여기서 정확히 어떤 작업을 수행하고 계신 건가요?
RGJ
(Richard - Communiteq)
6월 17, 2024, 8:44오전
5
Discourse 설치에서 DNS 항목이 캐시되어 이전 WordPress 설치의 IP 주소를 사용 중일 수 있습니다. 이를 가장 빠르게 확인하는 방법은 컨테이너를 재시작한 후 문제가 해결되는지 살펴보는 것입니다.
로그에는 아티클을 수동으로 저장했을 당시의 기록이 표시된 것 같습니다. 오타였네요. '수동으로 저장’이라고 적어야 했습니다.
DNS 문제도 생각나서, WordPress를 새 서버로 옮긴 직후 바로 “./launcher rebuild app” 명령을 실행했습니다. 하지만 DNS 관점에서는 너무 이르렀을 수도 있겠네요. 다시 시도해 보겠습니다.
angus
(Angus McLeod)
6월 21, 2024, 6:47오전
7
죄송합니다, 확인 차 여쭤보겠습니다. 말씀하신 로그가 자동 게시와 관련된 문제와 무관하다는 뜻이신가요? 아니라면, 자동 게시 이벤트에 대한 로그를 공유해 주시겠어요?
로그에서 특정 줄이 문제와 관련이 있는지 아닌지 구별하는 것이 나에게 매우 어렵습니다. DNS 설정을 몇 가지 변경했는데, 10시에 다음 게시물이 나올 때 도움이 되었는지 확인해 보겠습니다.
현재 문제는 WordPress에서 게시물이 특정 시간에 자동으로 게시될 때 Discourse 커뮤니티로의 링크가 생성되지 않는다는 것입니다. 하지만 문제의 게시물을 나중에 수동으로 편집하여 아무런 변경 없이 단순히 저장하면, Discourse 커뮤니티로의 링크가 생성됩니다.
angus
(Angus McLeod)
6월 21, 2024, 6:59오전
9
다음에 게시물이 게시되면, 유사한 타임스탬프를 가진 publish.INFO 또는 publish.ERROR 로그를 찾아서 여기서 발견한 내용을 공유해 주세요.
현재 자동 예약된 기사 Vaše hodinky Amazfit zřejmě budou ještě lepší! Blíží se velká aktualizace 가 게시되었지만 여전히 Discourse 링크가 없습니다.
해당 기사의 ID는 772581입니다.
불행히도, 지난번 소통 이후 로그에서 확인되는 정보는 다음 내용뿐입니다.
[2024-06-21 07:09:01] connection.INFO: check_connection_status.successful_connection
[2024-06-21 07:09:01] connection.INFO: check_connection_status.valid_scopes
[2024-06-21 07:23:30] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"772615"}
[2024-06-21 07:25:57] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"772615"}
[2024-06-21 07:42:03] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"772857"}
[2024-06-21 07:47:37] sso_client.INFO: auth_user.success {"user_id":129795}
[2024-06-21 07:48:05] sso_client.INFO: auth_user.success {"user_id":152766}
[2024-06-21 08:04:20] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"772857"}
여기 메타 로그를 보내드립니다. 내용에서 읽을 만한 정보는 찾지 못했습니다.
### This file is included in log downloads ###
### Server ###
WordPress - 6.5.4
PHP - 8.0.30
MySQL - 11.3.2
### Active Plugins ###
Advanced Google reCAPTCHA - 1.21
Allviews - 1.0.1
APS Arena Products - 2.5.5
Classic Editor - 1.6.3
Error Log Monitor - 1.7.8
FS Poster - 6.5.9
GTM4WP - A Google Tag Manager (GTM) plugin for WordPress - 1.20.2
Head, Footer and Post Injections - 3.2.8
Kontrola uploadovaných obrázků - 1.0
Limit Modified Date - 1.0.0
Lnk.Bio - 0.2.2
Lokální ukládání Gravatarů - 1.4
Lynt Custom Functions - 1.0.3
Pixwords Scenes Nápověda - 1.0.2
Rank Math SEO PRO - 3.0.64
Rank Math SEO with AI SEO Tools - 1.0.221
Redakční Tools - bez expirace - 2.0.12
SA Partner Products Feed - 1.0
Simple Local Avatars - 2.7.10
Speculative Loading - 1.3.1
Super Progressive Web Apps - 2.2.27
SZ Ad Manager API - 1.3.21
Webpushr Push Notifications - 4.36.0
WordPress Editorial Calendar - 3.8.5
WP-Appbox - 4.4.19
WP-Discourse - 2.5.3
WP-PostViews - 1.77
Wpify Performance Helper - master
WP Shortcode by MyThemeShop - 1.4.17
WP Shortcode by MyThemeShop extend by Svět Zítřka - 1.16
### WP Discourse Settings (Secrets Excluded) ###
connection-logs - 1
display-subcategories - 0
allow-tags - 0
max-tags - 5
publish-as-unlisted - 1
full-post-content - 0
custom-excerpt-length - 55
add-featured-link - 1
auto-publish - 1
force-publish - 1
force-publish-max-age - 0
publish-failure-notice - 1
auto-track - 1
allowed_post_types - post,page
exclude_tags -
hide-discourse-name-field - 0
discourse-username-editable - 0
direct-db-publication-flags - 0
verbose-publication-logs - 1
enable-discourse-comments - 1
comment-type - display-comments-link
ajax-load - 0
load-comment-css - 0
discourse-new-tab - 0
hide-wordpress-comments - 0
show-existing-comments - 1
max-comments - 0
min-replies - 1
min-score - 0
min-trust-level - 1
bypass-trust-level-score - 50
only-show-moderator-liked - 0
custom-datetime-format -
cache-html - 1
clear-cached-comment-html - 0
verbose-comment-logs - 1
use-discourse-webhook - 1
webhook-match-old-topics - 0
use-discourse-user-webhook - 0
webhook-match-user-email - 0
verbose-webhook-logs - 1
verbose-sso-logs - 1
enable-sso - 0
auto-create-sso-user - 0
real-name-as-discourse-name - 0
force-avatar-update - 0
redirect-without-login - 0
sso-client-enabled - 1
sso-client-login-form-change - 1
sso-client-sync-by-email - 1
sso-client-disable-create-user - 0
sso-client-sync-logout - 1
logs-enabled - 1
angus
(Angus McLeod)
6월 21, 2024, 8:43오전
11
네, 그러면 문제가 바로 예약된 게시물의 자동 게시와 관련된 기존 문제라는 뜻이네요.
So we have a problem when posts are created or published by other plugins, the value specified for ‘publish to discourse’ is always ignored.
Discussing the issue with one author of such a plugin the response was:
their plugin may be using filters that are not triggered upon an anonymous update
and
In some cases we aren’t able to accommodate for plugins that don’t trigger filters/actions in a global manner.
Is this a possibility? Raised this on github a while back with @benword and thoug…
가장 가능성 있는 원인은 사이트의 다른 플러그인 중 하나가 예약 시스템에 함께 연결되어 있어, 과거 다른 사용자들도 경험했던 문제가 발생하는 것입니다. 플러그인 목록을 살펴보면, 아래 플러그인이 유력한 후보로 보입니다:
WordPress Editorial Calendar - 3.8.5
해당 플러그인을 비활성화해 보시고, 문제가 여전히 발생하는지 확인해 주시겠습니까?
팁을 주셔서 감사합니다. 플러그인을 설정했고, 우리 시간으로 12시에 기사가 정상적으로 게시되는지 확인해 보겠습니다.
하지만 이전 서버에도 동일한 플러그인 설정이 적용되어 있었는데, 당시에는 모든 기능이 정상적으로 작동했습니다.
Warning: Undefined variable $status_url in /.../www/wp-content/plugins/wp-discourse/lib/sync-discourse-topic.php on line 230
이는 다음 코드 조각을 가리키는 것입니다: $response = $this->discourse_request( $status_url, $args );
angus
(Angus McLeod)
6월 21, 2024, 8:49오전
13
설정이 완전히 동일하다는 것에 100% 확신이 있으신가요? 이를 어떻게 확인하셨나요?
Petr Mišák:
Warning: Undefined variable $status_url in /.../www/wp-content/plugins/wp-discourse/lib/sync-discourse-topic.php on line 230
이것은 이 코드 조각 $response = $this->discourse_request( $status_url, $args );를 가리키는 것입니다.
이것은 웹훅에 관한 것이며, 현재 문제와는 무관합니다.
네, 이전 서버에서도 Discourse 플러그인 설정은 동일했습니다. 서버와 DB 데이터가 물리적으로 이전되었기 때문입니다.
불행히도 이 플러그인이 원인이 아니었습니다. 현재 해당 플러그인은 비활성화되어 있으며, 방금 Discourse로 연결되는 링크가 포함된 기사가 게시되었지만 다음 URL이 적용되지 않았습니다:
로그에는 ID가 772245인 기사에 대한 정보가 전혀 없습니다.
하지만 문제 있는 기사를 수동으로 열어 저장하면 로그에 다음 내용이 표시됩니다.
[2024-06-21 10:13:07] publish.INFO: create_post.post_success {"wp_title":"Skvělý na cesty! Xiaomi vydalo maličký holicí strojek s nabíjením přes USB-C","wp_author_id":"150202","wp_post_id":772245}
[2024-06-21 10:13:07] publish.INFO: create_post.body_valid {"wp_title":"Skvělý na cesty! Xiaomi vydalo maličký holicí strojek s nabíjením přes USB-C","wp_author_id":"150202","wp_post_id":772245}
[2024-06-21 10:13:07] publish.INFO: create_post.after_publish {"post_id":772245,"remote_post_type":"create_post","discourse_post_id":"10809","discourse_topic_id":"6138","discourse_permalink":"https://komunita.svetandroida.cz/t/skvely-na-cesty-xiaomi-vydalo-malicky-holici-strojek-s-nabijenim-pres-usb-c/6138"}
[2024-06-21 10:13:07] webhook_topic.ERROR: update_topic_content.response_body_error
[2024-06-21 10:13:07] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"772245"}
WP CLI를 사용하여 WP 크론을 실행하고 있는 것이 문제일 수 있을까요?
angus
(Angus McLeod)
6월 21, 2024, 10:23오전
16
네, 그럴 가능성이 있습니다. WordPress UI에서 게시물을 예약하여 정상적으로 작동하는지 확인해 보세요.
음, WP CLI가 아니라 일반 cron을 사용했을 때 모든 것이 정상적으로 작동합니다.
하지만 왜 그런지 이해가 되지 않습니다. WordPress 플러그인을 수정하여 WP CLI와도 호환되도록 할 수 있을까요?
@simon 님에게 도움이 될까요?
simon
6월 24, 2024, 1:45오전
19
크론 작업을 어떻게 호출하고 계신가요? wp cron을 호출할 때 모든 전역 wp 매개변수에 의해 호출이 영향을 받을 수 있다는 점에 유의하세요: Config – WP-CLI – WordPress.org . wp 설정 중 일부가 작업 처리 방식에 영향을 미치고 있을 수 있습니다.
이것은 모든 예약된 WordPress 크론 작업을 호출합니다:
wp cron event run --due-now
wp cron event run publish_future_post만 호출하고 있다면, WP Discourse 플러그인이 게시물을 게시하는 데 필요한 이벤트가 트리거되지 않을 수 있습니다. 이것이 WordPress가 내부적으로 예약된 게시물을 처리하는 방식과 동일한 것이라 _생각_합니다:
wp cron event run publish_future_post future_to_publish publish_post transition_post_status
이것은 테스트해 보지 않았습니다. 새 컴퓨터를 설정 중이며 아직 WordPress 사이트가 없습니다. 곧 진행하겠습니다.