techops
(Techops)
1
WordPressの投稿をDiscourseに公開しようとすると、Discourse WordPressプラグインで問題が発生しています。
問題の説明:
WordPressサイトで新しい投稿を作成し、公開前にDiscourseタブの下にある「Publish to Discourse」オプションをオンにすると、投稿はWordPressに正常に公開されます。しかし、その時点ではDiscourseトピックは作成されません。
後で同じ投稿を編集し、再度Discourseタブに移動して**「New Topic」をクリックしてDiscourseに公開すると、投稿はDiscourseサイトに作成されます**。しかし、このDiscourseトピックは元のWordPress投稿とリンクされません。パーマリンクの関連付けやメタデータが投稿に保存されません。
デバッグ結果:
デバッグ中に、以下の呼び出しに気づきました。
/wp-json/wp-discourse/v1/publish-topic
以下の応答が返されます。
{
“publish_response”: “success”,
“permalink”: “”
}
ご覧のとおり、「permalink」フィールドは空です。これは、Discourseトピックが作成されるものの、WordPress投稿にリンクされない(つまり、パーマリンクがpostmetaに保存されないため、WPとDiscourse間のリンクが壊れている)根本的な理由のようです。
API応答でパーマリンクが空で返される理由を調査していただけますか?プラグインの設定ミスか、公開ワークフローのバグでしょうか?
ログや追加情報が必要な場合はお知らせください。ご協力ありがとうございます!
angus
(Angus McLeod)
3
こんにちは @techops さん、WordPress の WP Discourse > Logs から関連するログを共有していただけますでしょうか。可能であれば、そのビューのメタファイルも共有してください。
「いいね!」 1
techops
(Techops)
4
アンガス様
迅速なご返信ありがとうございます。
WordPressダッシュボードの「WP Discourse > Logs」の下にログは利用できません。ログビューは現在空です。
しかし、ご要望のメタファイルはこちらです: Discourse meta - Google Docs
この問題をトラブルシューティングするために、他に提供できるものがあればお知らせください。
よろしくお願いいたします。
angus
(Angus McLeod)
5
@techopsさん、ありがとうございます。いくつかやりたいことがあります。
「公開設定」でこの設定を無効にしてください。
公開時のメール通知を送信する
「公開設定」でこの設定が有効になっていることを確認してください。
詳細な公開ログ
公開用にいくつかの投稿タイプが設定されています。
post,event,groups,collections,podcast
どの投稿タイプでこの問題が発生していますか? post ではない場合、その投稿タイプがどのように設定されているか、もう少し詳しく説明していただけますか?
techops
(Techops)
6
アンガス様
ご提案いただいた設定を適用しました。
- 無効: 公開失敗時のメール通知を送信する
- 有効: 詳細な公開ログ
post の投稿タイプのみを使用しています。
設定を更新した後、新しい投稿を作成し、Discourse に公開しました。生成されたログは以下のとおりです。
[2025-04-22 15:58:12] publish.INFO: create_post.post_success {"wp_title":"test post 4","wp_author_id":"221","wp_post_id":15068}
[2025-04-22 15:58:12] publish.INFO: create_post.body_valid {"wp_title":"test post 4","wp_author_id":"221","wp_post_id":15068}
[2025-04-22 15:58:12] publish.INFO: create_post.after_publish {"post_id":15068,"remote_post_type":"create_post","discourse_post_id":"","discourse_topic_id":"6910","discourse_permalink":""}
追加の情報や詳細が必要な場合はお知らせください。
よろしくお願いします!
angus
(Angus McLeod)
7
共有していただきありがとうございます。そのログは私には正常に見えます。Wordpressの投稿が公開された後にDiscourseのトピックが作成されていることがわかります。具体的にどのような問題があるのか確認していただけますか?次のように説明してください:
- WordPressで投稿を作成します。
- 投稿が公開された後に期待するのは…
この段階では技術的な仮定をしないようにしてください。ありがとうございます!
techops
(Techops)
8
アンガス様
WordPressで投稿を作成しました。
投稿が公開された後、以下の動作を期待しています。
「Discourseに公開」のチェックボックスがオンになっている場合、期待される動作は、Discourseに投稿が作成され、WordPressの投稿とリンクされることです。
しかし、実際には、Discourseに投稿は作成されますが、リンクがすぐに失われます。その後、手動で再作成する必要があります。
よろしくお願いします!
angus
(Angus McLeod)
9
ありがとうございます。以下についても確認していただけますか:
- どのWordPress投稿作成者(コンポーザー)を使用していますか?クラシックエディタですか、それともGutenbergですか?これらの投稿は標準的でない方法(例:'Gravity Forms Advanced Post Creation’を使用していることを見ると)で作成されていますか?
- この問題が発生しているWordPressの例の投稿とDiscourseのトピックを共有していただけますか?
- WordPressのメタフィールドを変更するプラグイン(例:Advanced Custom Fields)を使用していますか?
techops
(Techops)
10
フォローアップありがとうございます。詳細は以下の通りです。
追加情報やさらなるテストが必要な場合はお知らせください。
もし役立つようでしたら、一時的なログインアクセス を提供することも可能ですので、直接セットアップをご確認いただけます。
ありがとうございます!
angus
(Angus McLeod)
11
動画を録画していただきありがとうございます。カスタム公開ワークフローを使用して投稿を公開しているようですね。
これが問題に関連している可能性があります。
このカスタムワークフローを使用せずに投稿を公開することは可能ですか?この問題を突き止めるには、消去法で進める必要があります。カスタム設定のいずれかが、WP Discourse の公開機能セットと互換性がない可能性が高いです。
techops
(Techops)
12
提案ありがとうございます。
カスタムワークフローを使用せずに直接投稿を公開するテストを行いましたが、残念ながら、まだ機能しません。
angus
(Angus McLeod)
13
わかりました、その調子で続けてください。カスタム設定のいずれかが、トピックが公開されたときに post_id とパーマリンクを保存する WP Discourse プラグインを防いでいる可能性があります。
techops
(Techops)
14
ありがとうございます、アガス。
原因を特定しました。SmartCrawl SEOプラグインがWP Discourseと衝突していました。SmartCrawlを無効にした後、投稿は期待通りにDiscourseに公開され、WordPressの投稿とも正しくリンクしています。
「いいね!」 1
angus
(Angus McLeod)
15
犯人を見つけたらよくやったと思います。現時点では、彼らのサポートチームにこのことを伝える価値があるかもしれません。つまり、「あなたのプラグインは他のプラグインが標準のWordPress APIを使用するのを妨げているようです…」と伝え、問題を説明してください。彼らにこのトピックを指摘することもできるかもしれません。