J’ai un article WordPress existant qui était auparavant également publié sur le forum.
À un moment donné, à chaque fois que je mets à jour l’article en cliquant sur le lien save, je reçois un email avec le message d’erreur suivant :
Échec de la publication sur Discourse
Une publication n'a pas pu être publiée sur Discourse depuis votre site ...
...
Raison de l'échec :
Une mauvaise réponse a été renvoyée par Discourse.
Embed url wird bereits verwendet (se traduit par « est déjà utilisé »)
J’ai dissocié l’article de Discourse. J’ai également supprimé l’article sur le forum. Pourtant, l’erreur réapparaît à chaque sauvegarde de l’article. De plus, lorsque j’essaie de publier l’article comme un nouveau sujet, la même erreur apparaît.
Il y avait un bug dans le plugin qui provoquait une tentative de republier des publications sur Discourse après qu’elles aient été dissociées sur WordPress, lorsque l’option Publication automatique est activée et que les publications sont publiées avec l’éditeur par blocs. La publication sur Discourse échouait, car l’URL d’intégration était déjà utilisée sur Discourse. J’ai corrigé ce problème hier, mais la correction ne s’applique qu’aux publications récemment dissociées. Je vais trouver une solution pour corriger le problème pour les publications qui ont été dissociées dans le passé.
Lorsque les publications sont dissociées, le plugin ne supprime pas l’embed_url du sujet sur Discourse. Cela signifie que si une publication est dissociée puis republiée sur Discourse, la publication échouera avec l’erreur « Embed url is already being used ». Je vais corriger cela.
Si vous avez supprimé le sujet associé sur Discourse, il devrait être possible de republier la publication sur Discourse sans erreur. Je vérifierai que l’embed_url est bien supprimé sur Discourse lorsqu’un sujet est supprimé.
Je mettrai à jour le plugin plus tard cette semaine, ou au cours du week-end. Cette mise à jour devrait régler les problèmes que vous rencontrez avec les publications dissociées.
Pour éviter d’afficher le message d’erreur lorsqu’un post que vous avez dissocié de Discourse est mis à jour sur WordPress, ajoutez un champ personnalisé au post avec le nom wpdc_auto_publish_overridden et définissez sa valeur sur 1.
Je viens de publier la version 2.0.4 de WP Discourse sur le dépôt WordPress. Elle résoudra le problème des publications déliées de Discourse lorsque le site utilisait une version du plugin antérieure à 2.0.3. Pour ces publications, la première fois que vous mettrez à jour une publication déliée, vous verrez le message d’erreur « Embed url has already been taken ». Après cette première mise à jour, vous ne verrez plus ce message d’erreur (ni ne recevrez l’e-mail d’erreur de publication). Ce n’est pas une solution parfaite, mais c’est la meilleure façon de résoudre ce problème.
Si vous tentez de publier une publication sur Discourse alors qu’il existe déjà un sujet Discourse utilisant son URL d’intégration, vous recevrez une erreur. Si vous supprimez le sujet sur Discourse qui utilise l’URL d’intégration, vous devriez pouvoir republier le sujet. Il faut à Discourse un certain temps pour supprimer l’intégration de sujet associée à la publication WordPress. Je dois encore confirmer ce qui détermine cette durée. Faites-moi savoir si vous rencontrez toujours des problèmes avec cela.
Idéalement, lorsqu’une publication WordPress est déliée d’un sujet Discourse, l’embed_url associée à la publication devrait être supprimée sur Discourse. Malheureusement, il n’est actuellement pas possible de supprimer l’embed_url d’un sujet via l’API Discourse. Il pourrait être possible de rendre cela fonctionnel à l’avenir. Un changement plus modeste qui serait utile pour le plugin WP Discourse serait que Discourse renvoie l’topic_id lorsqu’il retourne le message d’erreur « Embed url has already been taken ». Ainsi, le plugin WP Discourse pourrait informer les utilisateurs du sujet Discourse à l’origine du problème.