Cas d’usage : Il y a des liens YouTube dans mes articles WordPress. Je veux que la vidéo YouTube s’affiche automatiquement dans l’article Discourse correspondant après la publication de l’article WordPress.
Problème : Cela ne semble pas fonctionner car, après la synchronisation, le HTML de l’article Discourse est :
La vidéo YouTube ne s’affiche correctement que si je supprime les balises <p></p>.
Alors, comment supprimer les balises <p></p> ? J’espère ne pas avoir à supprimer manuellement les balises <p></p>, car j’ai peut-être des milliers d’articles.
Je ne suis pas sûr de pouvoir supprimer les balises <p></p>directement dans le fichier functions.php.
J’ai suivi votre tutoriel de personnalisation. Voici le code dans functions.php :
// Ajoute l'image mise en avant à l'article publié sur Discourse.
function my_namespace_publish_format( $input ) {
ob_start();
?>
{excerpt} **<-----puis-je supprimer les balises p ici ?**
<?php
$output = ob_get_clean();
// Remarque : l'appel à apply_filters() présent dans la fonction d'origine a été supprimé.
return $output;
}
add_filter( 'discourse_publish_format_html', 'my_namespace_publish_format' );
Cela devrait fonctionner si les vidéos sont intégrées sur votre site WordPress. Il se peut que vous ayez besoin de quelques essais et erreurs pour obtenir le bon formatage. Le principal problème que j’ai rencontré est que, s’il y a des espaces avant la balise iframe de YouTube, Discourse l’interprétera comme du code.
Faites-moi savoir si cette approche ne fonctionne pas sur votre site.
Ce que j’aimerais voir fonctionner, c’est l’affichage des vidéos YouTube lorsque les utilisateurs cliquent sur le bouton « Afficher l’article complet » dans Discourse pour étendre un article WordPress. Je ne suis pas sûr que cela soit possible, cependant.
Merci d’avoir répondu. J’apprécie énormément ton aide.
Mais cela ne semble pas fonctionner.
La sortie était :
<small>Publié à l'origine sur http://staging.a1.sg/matrix/</small><br><br><iframe title="GCE O-Level
A-Maths: Matrix & its Inverse" width="525" height="394"
src="https://www.youtube.com/embed/alJEZwwtQ3U?feature=oembed" frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen>.
</iframe><br><p><iframe title="GCE O-Level A-Maths: Matrix & its Inverse" width="525"
height="394" src="https://www.youtube.com/embed/alJEZwwtQ3U?feature=oembed" frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen>.
</iframe></p>
J’ai également ajouté un code supplémentaire dans le fichier functions.php après avoir essayé la solution proposée ci-dessus, afin de m’assurer que le lien YouTube reste une chaîne de caractères.
La sortie de votre premier exemple de code ressemble à ce que j’attendais. Je pense que le problème vient du fait que vous devez ajouter https://www.youtube.com/embed à votre paramètre de site Discourse iframes autorisées. Cela permettra à l’iframe présente dans le balisage du message de s’afficher sous forme de lecteur vidéo sur Discourse.
Pourriez-vous essayer de publier un message sans utiliser le modèle personnalisé maintenant ? Il se peut que tout ce qui devait être fait était d’ajouter https://www.youtube.com/embed à votre paramètre de site Discourse iframes autorisées.
Quel éditeur utilisez-vous sur votre site WordPress, l’ancien Éditeur classique ou le nouvel Éditeur par blocs ? Publiez-vous également le message complet sur Discourse, ou seulement un extrait ?
Cela pourrait être réalisé en écrivant un petit script pour publier des messages à partir d’un fichier CSV.
Pour empêcher l’apparition du lien vers votre domaine WordPress sous le titre du sujet, désactivez l’option « Ajouter des liens mis en avant » sur votre page de paramètres de publication WP Discourse. Pour supprimer le lien mis en avant des publications déjà publiées, vous pouvez soit le masquer avec du CSS, soit le retirer de la base de données de votre site Discourse. Je serai absent du travail pendant les prochains jours, mais je pourrai m’en occuper dès mon retour mercredi.
Si vous pouvez attendre jusqu’à mercredi, je pourrai vous aider à le faire. Si vous devez le faire plus tôt, vous pourriez essayer de créer un nouveau sujet dans notre catégorie Support en demandant comment créer des sujets via l’API à partir d’un fichier CSV.