ディスコースに正しく投稿されていません – API応答にパーマリンクがありません

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応答でパーマリンクが空で返される理由を調査していただけますか?プラグインの設定ミスか、公開ワークフローのバグでしょうか?

ログや追加情報が必要な場合はお知らせください。ご協力ありがとうございます!

こんにちは @techops さん、WordPress の WP Discourse > Logs から関連するログを共有していただけますでしょうか。可能であれば、そのビューのメタファイルも共有してください。

「いいね!」 1

アンガス様

迅速なご返信ありがとうございます。

WordPressダッシュボードの「WP Discourse > Logs」の下にログは利用できません。ログビューは現在空です。

しかし、ご要望のメタファイルはこちらです: Discourse meta - Google Docs

この問題をトラブルシューティングするために、他に提供できるものがあればお知らせください。

よろしくお願いいたします。

@techopsさん、ありがとうございます。いくつかやりたいことがあります。

「公開設定」でこの設定を無効にしてください。

公開時のメール通知を送信する

「公開設定」でこの設定が有効になっていることを確認してください。

詳細な公開ログ

公開用にいくつかの投稿タイプが設定されています。

post,event,groups,collections,podcast

どの投稿タイプでこの問題が発生していますか? post ではない場合、その投稿タイプがどのように設定されているか、もう少し詳しく説明していただけますか?

アンガス様

ご提案いただいた設定を適用しました。

  • 無効: 公開失敗時のメール通知を送信する
  • 有効: 詳細な公開ログ

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":""} 

追加の情報や詳細が必要な場合はお知らせください。

よろしくお願いします!

共有していただきありがとうございます。そのログは私には正常に見えます。Wordpressの投稿が公開された後にDiscourseのトピックが作成されていることがわかります。具体的にどのような問題があるのか確認していただけますか?次のように説明してください:

  1. WordPressで投稿を作成します。
  2. 投稿が公開された後に期待するのは…

この段階では技術的な仮定をしないようにしてください。ありがとうございます!

アンガス様

WordPressで投稿を作成しました。
投稿が公開された後、以下の動作を期待しています。

「Discourseに公開」のチェックボックスがオンになっている場合、期待される動作は、Discourseに投稿が作成され、WordPressの投稿とリンクされることです。

しかし、実際には、Discourseに投稿は作成されますが、リンクがすぐに失われます。その後、手動で再作成する必要があります。

よろしくお願いします!

ありがとうございます。以下についても確認していただけますか:

  1. どのWordPress投稿作成者(コンポーザー)を使用していますか?クラシックエディタですか、それともGutenbergですか?これらの投稿は標準的でない方法(例:'Gravity Forms Advanced Post Creation’を使用していることを見ると)で作成されていますか?
  2. この問題が発生しているWordPressの例の投稿とDiscourseのトピックを共有していただけますか?
  3. WordPressのメタフィールドを変更するプラグイン(例:Advanced Custom Fields)を使用していますか?

フォローアップありがとうございます。詳細は以下の通りです。

追加情報やさらなるテストが必要な場合はお知らせください。
もし役立つようでしたら、一時的なログインアクセス を提供することも可能ですので、直接セットアップをご確認いただけます。

ありがとうございます!

動画を録画していただきありがとうございます。カスタム公開ワークフローを使用して投稿を公開しているようですね。

これが問題に関連している可能性があります。

このカスタムワークフローを使用せずに投稿を公開することは可能ですか?この問題を突き止めるには、消去法で進める必要があります。カスタム設定のいずれかが、WP Discourse の公開機能セットと互換性がない可能性が高いです。

提案ありがとうございます。
カスタムワークフローを使用せずに直接投稿を公開するテストを行いましたが、残念ながら、まだ機能しません。

わかりました、その調子で続けてください。カスタム設定のいずれかが、トピックが公開されたときに post_id とパーマリンクを保存する WP Discourse プラグインを防いでいる可能性があります。

ありがとうございます、アガス。

原因を特定しました。SmartCrawl SEOプラグインがWP Discourseと衝突していました。SmartCrawlを無効にした後、投稿は期待通りにDiscourseに公開され、WordPressの投稿とも正しくリンクしています。

「いいね!」 1

犯人を見つけたらよくやったと思います。現時点では、彼らのサポートチームにこのことを伝える価値があるかもしれません。つまり、「あなたのプラグインは他のプラグインが標準のWordPress APIを使用するのを妨げているようです…」と伝え、問題を説明してください。彼らにこのトピックを指摘することもできるかもしれません。