Question rapide sur le lien programmatique vers un sujet existant

J’utilise des formulaires frontend pour créer des publications dans WordPress qui doivent être liées à des sujets Discourse existants.

Mon plan consiste à entrer l’URL du sujet existant dans un champ ACF lorsque j’ajoute ou modifie une publication WP.

Ensuite, j’utiliserais

add_action('acf/save_post', 'my_acf_save_post', 25);

Dans la fonction my_acf_save_post, j’exécuterais

protected function link_to_discourse_topic( $post_id, $topic_url )

Comme vu ici

Suis-je sur la bonne voie ?

1 « J'aime »

Oui, vous êtes sur la bonne voie. En termes généraux, voici ce que vous devez faire :

  1. Récupérer les détails du sujet depuis Discourse (sauf si vous les avez déjà)
  2. Enregistrer les détails pertinents dans les bons champs de métadonnées de l’article

Ce sont ces champs de métadonnées de l’article, visibles dans la fonction à laquelle vous avez lié, qui établissent la connexion.

J’ai également ajouté cela à ma feuille de route de développement pour WP Discourse : faciliter cette tâche, c’est-à-dire utiliser une seule fonction utilitaire publique pour atteindre cet objectif. J’ai prévu cela pour juin.

Consultez également les fonctions utilitaires existantes dans lib/plugin_utilities.php et lib/utilities.php, ainsi que la méthode link_topic correspondante dans admin/discourse-sidebar/discourse-sidebar.php.

Dites-moi comment vous vous en sortez.

2 « J'aime »

@Angus, merci pour ta réponse. Je suis encore au stade des tout débuts en PHP, donc si tu prévois de travailler là-dessus, je vais attendre.

Par ailleurs, je rencontre une erreur répétitive avec le plugin WP. Je ne sais pas si tu préfères un nouveau post ou une issue sur GitHub, mais voici ce qui se passe :

Lorsque j’ouvre un article WP lié à un sujet du forum, le lien n’apparaît pas dans le bloc Discourse. On dirait qu’il n’y a aucun lien.

Conditions :
Cela se produit que le lien ait été créé en publiant un « Nouveau sujet » ou en utilisant « Lier à un sujet existant ».

Mes articles WP sont des CPT.

Mon paramétrage de commentaires est défini sur « Afficher un lien vers les commentaires ».

À part cela, rien de spécial dans mon installation.

Confirmation :
Je peux confirmer que les liens qui n’apparaissent pas dans le bloc Discourse existent bel et bien, car je les vois dans mes colonnes d’administration, et parce que je peux cliquer sur le lien en frontend pour accéder au post du forum.

Je serai ravi de fournir plus d’informations ou de participer à des tests.

Salutations, Richard

1 « J'aime »

Avez-vous ajouté votre type de publication personnalisé dans le paramètre de publication « Types de publication à publier » ? Voir ci-dessous

1 « J'aime »

Oui. J’aurais dû préciser : tout fonctionne au départ. Je peux publier sur un nouveau sujet ou lier à un sujet existant, et les liens fonctionnent dans les deux sens… sauf que

Si je modifie ultérieurement un article sur WordPress, le bloc Discourse semble indiquer qu’aucun lien n’est établi, même si le lien frontal de WordPress pointe toujours vers le bon sujet du forum, et que le lien dans le sujet du forum pointe toujours vers le bon article WordPress.

Le problème n’existe donc que dans le bloc Discourse de WordPress lors de la modification d’un article.

N’hésitez pas à me dire si vous avez besoin d’autres informations.

1 « J'aime »

Merci, quelques questions supplémentaires

  1. Voyez-vous des erreurs dans la console de l’inspecteur web de votre navigateur ?

  2. Si vous effectuez un rafraîchissement complet de la page tout en visualisant l’éditeur, que se passe-t-il ?

Il semble qu’il y ait un problème JavaScript. Cela pourrait être causé par divers facteurs, notamment d’autres plugins ou une extension de navigateur. Nous devons, si possible, affiner un peu plus la recherche.

1 « J'aime »

Console : Le nœud est introuvable sur la page actuelle.

D’abord, le bloc Discourse affiche les sections « Options de publication » / « Épingler le sujet » et « Publier sur Discourse ». Ensuite, la section Catégorie apparaît. Les liens existants ne sont pas affichés.

J’ai désactivé tous les plugins sauf WP-Discourse, CPT et ACF, puis j’ai essayé avec les navigateurs Brave et Edge, tous deux sans extensions et avec les boucliers désactivés. Je ne parviens toujours pas à voir les liens existants dans le bloc Discourse.

Je fais un test entre les publications régulières et les publications CPT. Je vous tiendrai au courant des résultats.

1 « J'aime »

Je ne sais pas pourquoi, mais mes liens s’affichent maintenant dans le bloc Discourse. Je reviendrai vers vous si je trouve un motif à ce problème. Merci.

2 « J'aime »