既存トピックへのプログラムによるリンクに関する簡単な質問

WordPress で既存の Discourse トピックとリンクする投稿を作成するために、フロントエンドフォームを使用しています。

私の計画は、WP 投稿を追加または編集する際に、既存のトピック URL を ACF のフィールドに入力することです。

次に、以下のコードを使用します。

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

はい、その方向で間違いありません。大まかに言えば、以下の手順が必要です。

  1. Discourse からトピックの詳細を取得する(すでに取得済みの場合は不要)
  2. 関連する詳細を適切な投稿メタフィールドに保存する

リンクされた関数に表示されているのは、まさにこれらの投稿メタフィールドであり、これが接続を作成します。

また、WP Discourse の開発計画に以下のタスクを追加しました:これをより簡単に行えるようにする、つまり単一の公開ユーティリティ関数を使用してこの目標を達成することです。これは 6 月に予定しています。

また、既存のユーティリティ関数である lib/plugin_utilities.php および lib/utilities.php もご覧ください。さらに、admin/discourse-sidebar/discourse-sidebar.php 内の対応する link_topic メソッドも確認してください。

進捗状況について教えてください。

「いいね!」 2

@Angus、ご返信ありがとうございます。私は PHP の初心者ですので、もしあなたがこの件に取り組む予定であれば、待たせていただきます。

また、WP プラグインで再現性のあるエラーが発生しています。別投稿か GitHub の issue として提出すべきか迷いますが、状況を以下に記します。

WP の投稿でフォーラムのトピックにリンクされているものを開くと、Discourse ブロック内にリンクが表示されません。リンクがないように見えます。

条件:
「新しいトピックを作成して公開」した場合でも、「既存のトピックにリンク」した場合でもこの現象が発生します。

私の WP 投稿は CPT(カスタム投稿タイプ)です。
コメント設定は「コメントへのリンクを表示」に設定されています。
それ以外に、インストール環境に特別な点はございません。

確認:
Discourse ブロックに表示されていないリンクが実際に存在することは、管理画面の列で確認でき、またフロントエンドのリンクをクリックしてフォーラムの投稿へ移動できることから確認できます。

追加の情報提供やテストにご協力いたします。

よろしくお願いいたします、リチャード

「いいね!」 1

「公開設定」の「公開する投稿タイプ」にカスタム投稿タイプを追加しましたか?詳細は以下をご覧ください。

「いいね!」 1

はい。最初に言及すべきでした。最初はすべて正常に動作します。新しいトピックに公開することも、既存のトピックにリンクすることもでき、双方向のリンクも機能します。ただし、例外があります。

後で WordPress の投稿を再編集すると、Discourse ブロックにはリンクされていないように表示されます。しかし、WordPress フロントエンドのリンクは正しいフォーラムトピックへ、フォーラムトピック内のリンクも正しい WordPress 投稿へそれぞれ正しく遷移します。

つまり、問題は WordPress の Discourse ブロックで投稿を再編集している間のみ発生します。

他に必要があればお知らせください。

「いいね!」 1

ありがとうございます、さらにいくつか質問させてください。

  1. ブラウザのウェブインスペクターコンソールにエラーは表示されていますか?

  2. エディターを表示している状態でページを完全に再読み込みすると、どのような現象が発生しますか?

どうやらJavaScriptの問題のようです。これは、他のプラグインやブラウザ拡張機能など、さまざまな要因が原因で発生する可能性があります。可能であれば、原因をさらに特定する必要があります。

「いいね!」 1

コンソール:現在のページでノードが見つかりません

まず、Discourse ブロックに「公開オプション」/「トピックのピン留め」と「Discourse への公開」セクションが表示されます。その後、「カテゴリ」セクションが現れます。既存のリンクは表示されません。

WP-Discourse、CPT、ACF を除くすべてのプラグインを無効にし、Brave ブラウザと Edge ブラウザ(どちらも拡張機能とシールドを無効化)で試しましたが、Discourse ブロックに既存のリンクが表示されません。

通常の投稿と CPT 投稿の間でテストを実行しています。結果をお知らせします。

「いいね!」 1

理由はわかりませんが、リンクが Discourse ブロックに表示されるようになりました。この問題のパターンが見つかったら、改めて報告します。ありがとうございます。

「いいね!」 2