Plugin wp-discourse-shortcodes

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 « J'aime »

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 « J'aime »

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 « J'aime »

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 « J'aime »

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 « J'aime »

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

Salut Richard,

J’utilise la dernière version de ce plugin mais malheureusement, il ne fonctionne pas.

J’ai le même problème que Nick :

Il ne semble pas “rafraîchir” les derniers articles de Discourse.

Je dois faire quelque chose de mal,

[discourse_topics source=“latest”] c’est le shortcode que j’utilise.

Il a extrait trois sujets de Discourse mais depuis, j’en ai ajouté d’autres pour voir s’ils apparaissaient sur mon site WordPress.

Ils ne sont pas apparus.

J’ai essayé l’événement Ajax et il ne semble toujours pas extraire les nouveaux articles :sweat:


Pourriez-vous m’aider ici, s’il vous plaît ?

Ceci est enfin en tête de ma liste, je vais donc travailler sur ce plugin demain, corriger quelques bugs et répondre à vos questions. Désolé pour le long délai.

3 « J'aime »

Merci, j’apprécie beaucoup.

Veuillez noter que mon problème a été résolu en vidant le cache d’objets de mon site Web principal.

2 « J'aime »

Avez-vous configuré le paramètre « Activer le webhook Discourse » ?

J’ai testé minutieusement le plugin, corrigé quelques bugs, dont deux liés à l’échec de la mise à jour du cache de la sortie du shortcode, mis à jour le fichier readme et publié une nouvelle version.

Je constate toujours un problème majeur où les shortcodes [discourse_topics] avec différentes catégories ne fonctionnent pas correctement. Cela demandera beaucoup de travail pour être résolu. Je m’en occuperai dès mon retour de vacances.

4 « J'aime »

Je n’ai qu’un seul shortcode en cours d’utilisation dans cette instance, donc je ne suis pas sûr si je devrais avoir des problèmes. Je voudrais afficher des sujets privés, mais seulement de certaines catégories (qui sont regroupées sous une catégorie parente unique). Ni l’ID de la catégorie parente unique (par exemple, [discourse_topics category="5" ... ]) ni chacun des ID des sous-catégories (par exemple, [discourse_topics category="6,7,8,9,17" ... ]) ne semblent limiter les résultats à ces catégories (des sujets privés supplémentaires sont affichés et ne devraient pas l’être). Je me demande si c’est le comportement actuellement attendu (que vous allez corriger) ?

Les ID de catégories multiples ne sont pas pris en charge.

Ce n’est effectivement pas le comportement attendu.

Une solution rapide pourrait être de désactiver la case à cocher Afficher les sujets privés dans l’onglet des paramètres. Cela ne résoudra pas le problème de la sélection incorrecte de la (des) catégorie(s), mais cela empêchera les sujets privés d’apparaître dans Wordpress.

Pourriez-vous s’il vous plaît vérifier vos journaux côté Discourse et rechercher l’appel API qui est effectué ? L’appel API sera déclenché lorsque vous modifierez et changerez la page côté Wordpress.