整理したと思います。[discourse_latest] 自体は正しいショートコードではなく、どこかで見たような気がしていました。[discourse_topics source=“latest”] に変更したら動作しました。
照れ笑い
Ray
追伸:ショートコードに表示される最新トピックの日付形式をどのように変更できますか?@simon。現在は 2020-10-20 と表示されますが、Oct-20 のような形式を希望しています。
整理したと思います。[discourse_latest] 自体は正しいショートコードではなく、どこかで見たような気がしていました。[discourse_topics source=“latest”] に変更したら動作しました。
照れ笑い
Ray
追伸:ショートコードに表示される最新トピックの日付形式をどのように変更できますか?@simon。現在は 2020-10-20 と表示されますが、Oct-20 のような形式を希望しています。
ショートコードプラグインは、WP Discourse コメントオプションタブで設定されている日付時間形式を使用しているはずです。その設定の説明にあるリンクをクリックして、日付の形式設定可能なオプションを確認してください。
これでうまくいきました、ありがとうございます!
レイ
デフォルトでユーザー名をアバターのタイトルとして追加するか、ショートコードのオプションとして追加していただけますでしょうか。また、ユーザー名を非表示にするオプション(display_usernames = “false” など)もあればと思います。
当面の間、これを必要とする方は wp-discourse-shortcodes-master/lib/discourse-topic-formatter.php に移動し、
$avatar_image = '<img class="wpds-latest-avatar" src="' . esc_url_raw( $poster_avatar_url ) . '">';
を
$avatar_image = '<img class="wpds-latest-avatar" title="'. esc_html( $poster_username ) . '" src="' . esc_url_raw( $poster_avatar_url ) . '">';
に置き換えてください。
素晴らしいプラグインです。ありがとうございます!
また、ショートコード内でカテゴリのリンク(詳細はこちら)をオプションとして追加できるのも便利でしょう。
このプラグインは現在もメンテナンスされていますか? ![]()
Discourse の最新投稿が「更新」されないようです。
何か間違っているのでしょう。
使用しているショートコードは [discourse_topics source="latest"] です。
Discourse から 3 つのトピックを取得しましたが、その後、WordPress サイトで新しいトピックが取得されるか確認するために、さらにトピックを追加しました。
しかし、反映されませんでした。
Ajax イベントも試しましたが、それでも新しい投稿が取得されないようです ![]()
特定のカテゴリまたはサブカテゴリからのトピックのみを取得することは可能ですか?
このプラグインの管理、ありがとうございます。WordPress のメインサイトでフォーラムのアクティビティを表示させたいと考えています。
Discourse インスタンスには多くのトピックがありますが、[discourse_topics] ショートコードはデータがないかのように空白を返してしまいます - Screenshot - b9160f714e42b2677b01bcf00c041634 - Gyazo
また、フロントエンドで以下のエラーが発生します:Warning : Invalid argument supplied for foreach() in /home/customer/www/web.com/public_html/wp-content/plugins/wp-discourse-shortcodes-master/lib/discourse-topic-formatter.php on line 94
参考になればと思い書きますが、コミュニティの RSS フィードは正常に動作し、すべてのトピックをリストしています。何が足りないのでしょうか?ご助力をお願いします ![]()
編集と更新:どうやらコード内で $topics 変数が値で埋められていないようです。
Line 94: foreach ( $topics as $topic ) {
.....
}
//Topic variable definition
if ( $use_plugin_formatting ) {
$topics = $discourse_topics['topic_list']['topics'];
}
わかりました。非公開の投稿を表示するチェックボックスがオンになっていませんでした。それ以外に、$topics 変数の null 値に対する条件を追加することでエラーを解決できます。それを行なったところ、問題なく動作しました。
もし PHP の foreach が空配列について文句を言わなければ、私の人生はずっと良くなるのに。
次のバージョンでこのチェックを追加します。
Discourse でユーザーの最新の WordPress プロフィール画像を更新するオプションはありますか?
2 つのサイト間で連携して機能するよう作成した Webhook を使用してユーザーデータを Discourse と同期していますが、Discourse ユーザーのプロフィール画像は更新されません。
これはついに私のリストの最上位に来たので、明日このプラグインに取り組み、いくつかのバグを修正し、ご質問にお答えします。長い遅延をお詫び申し上げます。
「Discourse Webhookを有効にする」設定を構成しましたか?
プラグインのテストを徹底的に行い、いくつかのバグを修正しました。そのうち2つは、ショートコードの出力キャッシュの更新に失敗するというものでした。READMEを更新し、新しいバージョンをプッシュしました。
[discourse_topics] ショートコードで異なるカテゴリを使用した場合に正しく機能しないという大きな問題がまだ1つ残っています。この修正にはかなりの作業が必要になります。休暇明けすぐにこの問題に取り組みます。
このインスタンスではショートコードを 1 つしか使用していないため、問題が発生しているかどうかはわかりません。プライベートトピックを表示したいのですが、特定のカテゴリ(単一の親カテゴリの下に収集されている)のみを表示したいと考えています。単一の親カテゴリ ID(例:[discourse_topics category="5" ... ])または各サブカテゴリ ID(例:[discourse_topics category="6,7,8,9,17" ... ])のいずれも、これらのカテゴリに結果を制限していないようです(表示されるべきではない追加のプライベートトピックが表示されています)。これは現在予期される動作(対処される予定の動作)でしょうか?
複数のカテゴリIDはサポートされていません。
それは確かに予期しない動作です。
簡単な修正策として、設定タブの「プライベートトピックを表示する」のチェックを外すことが考えられます。これにより、WordPressにプライベートトピックが表示されなくなりますが、間違ったカテゴリが選択されている問題は解決しません。
Discourse側のログを確認し、行われているAPIコールを検索していただけますか?APIコールは、WordPress側でページを編集して変更したときにトリガーされます。
DiscourseのログにAPI呼び出しは見つかりませんでした。
しかし、良いニュースは、解決策が見つかったと思われることです。
元のショートコードは source="top" とその他のパラメータを使用していましたが、デフォルト設定のみを使用するように、ショートコードを徐々に単純化しました。WP管理画面のチェックボックスの文言から、source="latest" のみがWebhookを使用すると誤解していましたが、最新トピック用のWebhookを有効にし(さらに表示したいカテゴリにのみトリガーを制限しました)、その後親カテゴリを追加したところ、ショートコードがカテゴリ制限を尊重するようになりました!
(キャッシュされたHTMLをWP管理画面からクリアしたり、サイトの他のキャッシュソースを使用したりしても、Webhookを有効にするまで source="latest" ではカテゴリ制限を尊重しませんでした。)
Webhook + source="latest" を使用して望ましい結果が得られた後、ソースを「top」に戻し、元のパラメータを少しずつ追加しました。今のところ、カテゴリ制限は尊重されています。Webhookは有効にしたままです。
もしWebhookが(リセットのようなものではなく)まだ役立っているのであれば、WP管理画面の文言を「最新トピックリストを更新するためにDiscourse Webhookを使用する」から「[discourse_topics]リストを更新するためにDiscourse Webhookを使用する」(または、トピックリストで使用しているソースに関係なく、Webhookが探している万能薬になる可能性が高いことを明確にするための他の何か)に変更することをお勧めします。![]()