Je n’ai trouvé aucun appel d’API dans les journaux de Discourse. Cependant, la bonne nouvelle est que je pense que nous avons peut-être résolu le problème.
Le shortcode d’origine utilisait source="top" et d’autres paramètres, j’ai donc lentement réduit le shortcode jusqu’à ce qu’il n’utilise que les paramètres par défaut par omission. Je pensais que seul source="latest" utilisait un webhook selon la formulation de la case à cocher dans les paramètres d’administration de WP, mais nous avons activé un webhook pour les derniers sujets (et avons en plus restreint le déclencheur aux seules catégories que nous voulions afficher), puis lorsque j’ai réintégré la catégorie parente, le shortcode a commencé à respecter les restrictions de catégorie ! (Il ne respectait pas la restriction de catégorie avec source="latest" avant que j’active le webhook, malgré le vidage du cache HTML via la page d’administration WP, et d’autres sources de mise en cache que nous avons pour le site.)
Après avoir constaté les résultats souhaités en utilisant le webhook + source="latest", j’ai reconfiguré la source sur “top”, puis j’ai réintégré les paramètres d’origine petit à petit. Jusqu’à présent, il a continué à respecter la restriction de catégorie. J’ai laissé le webhook activé.
Si le webhook est ce qui aide (encore, et pas seulement quelque chose qui a servi de réinitialisation en quelque sorte), je suggère de changer la formulation de la page d’administration WP de “Utiliser un webhook Discourse pour actualiser la liste des sujets ‘les plus récents’” à “Utiliser un webhook Discourse pour actualiser la liste [discourse_topics]” (ou quelque chose d’autre pour indiquer qu’il n’est pas important de source que vous utilisez dans la liste des sujets, le webhook sera probablement l’élixir miracle que nous recherchons).
Aussi un bug avec les catégories imbriquées qui ne s’affichent pas. Seuls les sujets d’une catégorie principale apparaissent.
Voir l’exemple ci-dessous : Général mais pas Général >> Nouvelles et événements
Salut Ryan, ni les aperçus d’images de sujets ni les noms ne sont des fonctionnalités du plugin, cependant vous pouvez utiliser ces filtres pour appliquer votre propre formatage et pour y ajouter éventuellement ces éléments.
Pour remplacer entièrement la sortie HTML, utilisez ces deux filtres (c’est-à-dire les équivalents de add_filter)
// Retourne false pour utiliser votre propre formatage
apply_filters( 'wpds_use_plugin_topiclist_formatting', true );
// Retourne votre propre sortie HTML à partir des données discourse_topics
apply_filters( 'wpds_after_topiclist_formatting', $output, $discourse_topics, $args );
Ou ajoutez des éléments supplémentaires dans le HTML existant
Correct. Si un sujet réside dans une catégorie imbriquée, le badge ne s’affichera pas. La capture d’écran ci-dessous montre le badge manquant. Il s’agit d’un sujet dans la catégorie imbriquée Général >> Nouvelles et événements. Si je changeais la catégorie du sujet en catégorie parente ‘Général’, le badge s’afficherait comme le deuxième sujet ci-dessous…
Merci. Pour information, j’ai ajouté un attribut « nom réel » pour remplacer les noms d’utilisateur et publié mes modifications dans ce dépôt. Je suis assez nouveau sur Git, donc je m’excuse si cela n’a pas suivi les canaux de validation appropriés, mais les modifications sont là si elles peuvent être utiles à quelqu’un d’autre.
Le principal problème de ce plugin reste l’impossibilité d’inclure/exclure par catégorie. Dans un forum privé basé sur l’adhésion, vous voyez soit toutes les catégories, soit aucune, ce qui signifie qu’il n’y a aucun moyen d’exclure les sujets du personnel de la vue de la base de membres élargie.
Cependant, il semble qu’une solution de contournement facile pourrait être de commenter la requête ajax et de s’appuyer exclusivement sur le webhook. Nous avons mis en place des déclencheurs pour exclure la catégorie du personnel dans le webhook.
En plus de source="latest" ou source="top", vous pouvez maintenant faire source="filter" et mettre la requête de filtre dans le paramètre q, comme ceci :