Débogage d'un problème de publication d'un type de publication personnalisé vide

J’ajoute une autre section IF pour un autre type de publication personnalisé sur WP Discourse: advanced custom filter for discourse_publish_format_html - #12 by Kayla … il s’agit du même type de publication que je souhaitais restreindre à un sujet Discourse spécifique et publier automatiquement selon mon récent sujet Filtering the available categories for a custom post type. Les publications sont automatiquement publiées dans le bon sujet, mais les champs personnalisés que j’essaie d’inclure dans discourse_publish_format_html arrivent vides. J’ai vérifié quatre fois tous les noms de mes champs et pourtant, à part les valeurs des champs elles-mêmes, tout semble arriver correctement sur Discourse.

Je me demande si l’un de ces facteurs pourrait en être la cause ?

  1. Le CPT est créé dans WordPress via le plugin Gravity Forms Advanced Post Creation Add-On
  2. Le CPT a Toolset Access appliqué, de sorte que seuls les éditeurs peuvent voir ces publications particulières ; le statut WP est « publié »
  3. Le CPT est publié dans une catégorie Discourse privée

Les éléments qui arrivent bien sur Discourse sont le titre du post/sujet, {author} et {blogurl}. Peut-être que la clé est que {excerpt} retourne également vide, tout comme les champs personnalisés ?

1 « J'aime »

Mise à jour : la désactivation complète de l’accès à Toolset et/ou la création d’un article via WordPress plutôt que par le formulaire Gravity n’a pas résolu le problème des champs personnalisés vides. En revanche, {excerpt} a commencé à s’afficher…

1 « J'aime »

Pour clarifier, Toolset Access ne semble pas avoir d’incidence sur cette différence avec {excerpt}.

Si je crée un article via l’administration de WordPress, {excerpt} est pris en compte (l’article utilise l’éditeur par blocs). {excerpt} est publié vide s’il est créé via Gravity Forms (qui crée un bloc « classique » pour contenir le champ WYSIWYG).

Les champs personnalisés (ligne unique, ligne multiple et nombre) retournent toujours une valeur vide, quelle que soit la méthode de création de l’article.

1 « J'aime »

Après avoir publié la publication, voyez-vous un message similaire à celui-ci dans la barre latérale Discourse de l’éditeur ?

Si le message de « succès » n’est pas affiché, mais que la publication a été publiée, alors le problème vient de la configuration du type de publication personnalisé.

Si le message de « succès » est affiché, les champs personnalisés devraient être disponibles en tant que métadonnées de publication qui peuvent être renvoyées avec get_post_meta( $post_id, 'your_meta_key_name', true );. La manière la plus simple de comprendre ce qui se passe serait d’écrire dans un fichier debug.log depuis votre fonction cosmos_custom_publish_format_html.

Je suis absent du travail cette semaine, donc je pourrais répondre aux questions plus lentement que d’habitude.

2 « J'aime »

J’ai enfin trouvé la cause : le problème semble provenir de l’option de publication automatique (un nouveau facteur que j’avais négligé). Si je décoche cette option, publie l’article sur WordPress, puis le publie sur Discourse, les champs personnalisés sont transférés vers Discourse et s’affichent correctement. Ou bien, si je laisse la publication automatique se faire, les champs s’affichent dans Discourse après avoir cliqué sur « Mettre à jour le sujet Discourse » dans WordPress. Il semble donc que, lors d’une publication automatique, l’article soit publié avant que les données des champs personnalisés ne soient correctement enregistrées dans WordPress.

2 « J'aime »