Wp-discourse-shortcodes Plugin

I think I have it sorted – [discourse_latest] isn’t a proper shortcode itself, I thought I saw it somewhere. I switched it to [discourse_topics source=“latest”] and it worked.

Sheepish grin
Ray

PS How can I change the date formatting on the latest topics that show on shortcode, @simon? It shows as 2020-10-20 and I’d rather have it say Oct-20 or similar.

1 „Gefällt mir“

I’m fairly sure that the shortcodes plugin uses the datetime format that is set on the WP Discourse Commenting options tab. Click the link in that setting’s description to see the available options for formatting dates.

That did the trick, thanks!

Ray

1 „Gefällt mir“

Could you please add the usernames as avatars titles by default or as a shortcode option, and maybe another option to remove the username ( display_usernames = “false” ?). Meanwhile, if anyone needs this go to wp-discourse-shortcodes-master/lib/discourse-topic-formatter.php and replace

$avatar_image = '<img class="wpds-latest-avatar" src="' . esc_url_raw( $poster_avatar_url ) . '">';

with

$avatar_image = '<img class="wpds-latest-avatar" title="'. esc_html( $poster_username ) . '" src="' . esc_url_raw( $poster_avatar_url ) . '">';

Great plugin. Thanks!

Also, the link for categories ( more info here ) as an option inside your shortcode would be also useful.

is this plugin still being maintained? :smiley:

Yes, we (Communiteq) are maintaining it now.

https://github.com/communiteq/wp-discourse-shortcodes

2 „Gefällt mir“

Doesn’t seem to ‘refresh’ latest posts from Discourse.

Must be doing something wrong,

[discourse_topics source=“latest”] this is the shortcode I’m using.

It has pulled three topics from Discourse but since then I’ve added more topics to see if it pulls through on my WordPress site.

They havent.

Tried Ajax event and still doesnt seem to pull new posts through :sweat:

Is it possible to get the topics from a certain category or subcategory only?

Thanks for managing this plugin. I need this to show forum activity on the main site in wordpress.

I have a lot of topics on discourse instance but the [discourse_topics] shortcode returns blank as if there is no data - Screenshot - b9160f714e42b2677b01bcf00c041634 - Gyazo

and throws the following error on the front-end: 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

If it helps anyone, the RSS feed of my community works just fine and lists all the topics. What could I be missing here? Help appreciated :pray:

Edit and update: It seems like the topics variable is not getting populated in code.

Line 94: foreach ( $topics as $topic ) {
.....
}

//Topic variable definition
if ( $use_plugin_formatting ) {
			$topics            = $discourse_topics['topic_list']['topics'];
}

I figured it out. The checkbox to show private posts was not enabled. Beyond that, the error can be solved by adding a condition for null value for $topics variable. I did that is worked just fine.

1 „Gefällt mir“

If only PHP foreach would not complain about empty arrays my life would be so much better.
We’ll add this check for the next version.

1 „Gefällt mir“

which is the option to update discourse with users newest WP profile pic?

Use a webhook to sync user data with Discourse. - which i created and works between the two sites but doesnt update discourse users profile picture?

@RGJ
Hallo Richard,
ich benutze die neueste Version dieses Plugins, aber leider funktioniert es nicht.
Ich habe das gleiche Problem wie Nick:
Scheint die neuesten Beiträge von Discourse nicht zu „aktualisieren“.
Muss etwas falsch machen,
[discourse_topics source=“latest”] das ist der Shortcode, den ich benutze.
Es hat drei Themen von Discourse abgerufen, aber seitdem habe ich weitere Themen hinzugefügt, um zu sehen, ob sie auf meiner WordPress-Seite durchkommen.
Sie sind nicht durchgekommen.
Habe das Ajax-Ereignis ausprobiert und es scheint immer noch keine neuen Beiträge durchzuziehen :sweat:

Könntest du hier bitte helfen?

Das steht endlich ganz oben auf meiner Liste, daher werde ich morgen an diesem Plugin arbeiten, einige Fehler beheben und Ihre Fragen beantworten. Entschuldigen Sie die lange Verzögerung.

3 „Gefällt mir“

Vielen Dank, sehr geschätzt.

Bitte beachten Sie, dass mein Problem durch das Leeren des Objekt-Caches meiner Hauptwebsite behoben wurde.

2 „Gefällt mir“

Haben Sie die Einstellung „Discourse-Webhook aktivieren“ konfiguriert?

Ich habe das Plugin gründlich getestet, einige Fehler behoben, von denen zwei mit dem Nicht-Aktualisieren des Caches der Shortcode-Ausgabe zu tun hatten, die Readme aktualisiert und eine neue Version hochgeladen.

Ich sehe immer noch ein großes Problem, bei dem [discourse_topics] Shortcodes mit unterschiedlichen Kategorien nicht korrekt funktionieren. Dies wird ziemlich viel Arbeit erfordern, um es zu beheben. Ich werde mich direkt nach meinem bevorstehenden Urlaub darum kümmern.

4 „Gefällt mir“

Ich verwende nur einen Shortcode in dieser Instanz, daher bin ich mir nicht sicher, ob ich Probleme haben sollte. Ich möchte private Themen anzeigen, aber nur aus bestimmten Kategorien (die unter einer einzigen Oberkategorie zusammengefasst sind). Weder die einzelne Oberkategorie-ID (z. B. [discourse_topics category="5" ... ]) noch jede der Unterkategorie-IDs (z. B. [discourse_topics category="6,7,8,9,17" ... ]) scheinen die Ergebnisse auf diese Kategorien zu beschränken (zusätzliche private Themen werden angezeigt, die nicht angezeigt werden sollten). Ich frage mich, ob dies das derzeit erwartete Verhalten ist (das Sie angehen werden)?

Mehrere Kategorie-IDs werden nicht unterstützt.

Das ist in der Tat kein erwartetes Verhalten.

Eine schnelle Lösung könnte darin bestehen, das Kontrollkästchen Private Themen anzeigen im Einstellungs-Tab zu deaktivieren. Das löst zwar nicht das Problem der falschen Kategorie(n), die ausgewählt werden, aber es verhindert, dass private Themen in WordPress angezeigt werden.

Können Sie bitte Ihre Protokolle auf der Discourse-Seite überprüfen und nach dem API-Aufruf suchen, der gemacht wird? Der API-Aufruf wird ausgelöst, wenn Sie die Seite auf der WordPress-Seite bearbeiten und ändern.