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
angus
(Angus McLeod)
2
はい、その方向で間違いありません。大まかに言えば、以下の手順が必要です。
- Discourse からトピックの詳細を取得する(すでに取得済みの場合は不要)
- 関連する詳細を適切な投稿メタフィールドに保存する
リンクされた関数に表示されているのは、まさにこれらの投稿メタフィールドであり、これが接続を作成します。
また、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
angus
(Angus McLeod)
4
「公開設定」の「公開する投稿タイプ」にカスタム投稿タイプを追加しましたか?詳細は以下をご覧ください。
「いいね!」 1
はい。最初に言及すべきでした。最初はすべて正常に動作します。新しいトピックに公開することも、既存のトピックにリンクすることもでき、双方向のリンクも機能します。ただし、例外があります。
後で WordPress の投稿を再編集すると、Discourse ブロックにはリンクされていないように表示されます。しかし、WordPress フロントエンドのリンクは正しいフォーラムトピックへ、フォーラムトピック内のリンクも正しい WordPress 投稿へそれぞれ正しく遷移します。
つまり、問題は WordPress の Discourse ブロックで投稿を再編集している間のみ発生します。
他に必要があればお知らせください。
「いいね!」 1
angus
(Angus McLeod)
6
ありがとうございます、さらにいくつか質問させてください。
-
ブラウザのウェブインスペクターコンソールにエラーは表示されていますか?
-
エディターを表示している状態でページを完全に再読み込みすると、どのような現象が発生しますか?
どうやらJavaScriptの問題のようです。これは、他のプラグインやブラウザ拡張機能など、さまざまな要因が原因で発生する可能性があります。可能であれば、原因をさらに特定する必要があります。
「いいね!」 1
コンソール:現在のページでノードが見つかりません
まず、Discourse ブロックに「公開オプション」/「トピックのピン留め」と「Discourse への公開」セクションが表示されます。その後、「カテゴリ」セクションが現れます。既存のリンクは表示されません。
WP-Discourse、CPT、ACF を除くすべてのプラグインを無効にし、Brave ブラウザと Edge ブラウザ(どちらも拡張機能とシールドを無効化)で試しましたが、Discourse ブロックに既存のリンクが表示されません。
通常の投稿と CPT 投稿の間でテストを実行しています。結果をお知らせします。
「いいね!」 1
理由はわかりませんが、リンクが Discourse ブロックに表示されるようになりました。この問題のパターンが見つかったら、改めて報告します。ありがとうございます。
「いいね!」 2