Esiste un caso in cui le immagini pubblicate su Discourse tramite i plugin WP Discourse e RSS possono risultare interrotte. Questo può accadere quando l’intero contenuto del post viene pubblicato su Discourse con il plugin WP Discourse e viene utilizzato l’editor classico di WordPress per la pubblicazione. Può verificarsi anche con i post importati su Discourse tramite il polling RSS quando l’impostazione di incorporamento Taglia i post incorporati non è abilitata.
Il problema si verifica quando Discourse tenta di scaricare le immagini aggiunte al post. Se il download dell’immagine remota genera un tag immagine Markdown avvolto in tag HTML, l’immagine risulterà interrotta.
Se i post vengono pubblicati da WordPress, il problema dovrebbe essere risolto passando dall’uso dell’Editor Classico all’uso dell’Editor a Blocchi per la pubblicazione dei post. Se ciò non è possibile o se non risolve il problema, una soluzione alternativa è impedire a Discourse di scaricare le immagini remote.
Se conosci i domini da cui vengono pubblicate le immagini remote, puoi impedire a Discourse di scaricare queste immagini aggiungendo il/i dominio/i all’impostazione del sito domini per il download immagini disabilitati:
Se non sei sicuro di tutti i domini utilizzati, puoi impedire a Discourse di scaricare tutte le immagini remote disabilitando l’impostazione scarica immagini remote in locale. Tieni presente che disabilitare questa impostazione potrebbe causare immagini interrotte sul tuo sito. Se possibile, è meglio impedire il download delle immagini remote solo da domini specifici che controlli.
May I ask for more details concerning this? All my sites use the Classic Editor, but very few use a plugin to render markdown as input (the plugin space dried up in markdown parsers, so folks reach for Jetpack most times).
Is the case when a markdown parser is used atop of the Classic Editor?
but just preventing Discourse from downloading the remote image with the disabled image download domains site setting is an easier way to fix it.
For posts published from WP Discourse with the Block Editor, the plugin attempts to fix the issue by processing the post with the following code before publishing it to Discourse:
It might be possible to implement a similar fix with for the Classic Editor, but with the Classic Editor the WordPress parse_blocks function isn’t available, so the fix would be more complex. My hope is that the issue can eventually be taken care of with changes to the core Discourse code.
Anch’io ho avuto questo problema con le immagini. Le scaricavo localmente, il che ha rotto le immagini come hai spiegato sopra. Dopo di che ho convertito l’HTML di WordPress in Markdown e ho incollato il risultato convertito su Discourse. Funziona bene, ma è tutto manuale.
È possibile integrare un convertitore per automatizzare il processo durante l’esportazione da WordPress?
Se utilizzi l’editor a blocchi di WordPress per pubblicare i post, la conversione dovrebbe avvenire automaticamente. Se invece utilizzi l’editor classico, dovrai correggere manualmente l’HTML su Discourse per evitare immagini danneggiate.
Fammi sapere se stai usando l’editor a blocchi ma hai ancora problemi con immagini danneggiate.
Potrebbe essere possibile aggiungere una funzionalità simile anche per i post pubblicati con l’editor classico, ma il codice necessario sarebbe più complesso rispetto a quanto viene fatto con l’editor a blocchi.
Sto usando l’editor a blocchi (Gutenberg), ma sono installati alcuni plugin di terze parti. Forse questo causa il problema delle immagini non visualizzate. Uso anche alcuni plugin di galleria di terze parti su WordPress.
Il plugin della galleria potrebbe essere la causa del problema. Ciò che fa il plugin WP Discourse è, prima di impostare il contenuto dell’articolo che verrà pubblicato su Discourse, cercare eventuali blocks nell’articolo il cui blockName è impostato su core/image o core/gallery. L’HTML delle immagini in quei blocchi viene riscritto in una forma che può essere analizzata da Discourse.
Sembra possibile che i plugin per le immagini utilizzati sul tuo sito possano utilizzare nomi di blocchi non gestiti. Qual è il nome del plugin per la galleria che stai utilizzando?
Capisco… sto usando questo, ma mi sono appena accorto che non è più supportato. Quindi penso che convertirò le immagini di nuovo nella galleria predefinita e proverò ad aggiornare i topic di Discourse. Questo dovrebbe essere il problema, mi scuso per l’inconveniente.
Ho passato all’Editor a Blocchi (prima o poi sarà necessario, dato che il supporto per l’Editor Classico terminerà l’anno prossimo), ma il problema non è stato risolto. Le immagini erano ospitate su Facebook.
Sei in grado di controllare il markup delle immagini nel post di WordPress selezionando ‘Editor di codice’ dalla barra laterale? Mi chiedo in che tipo di blocco (se presente) si trovino le immagini:
Il plugin di WordPress utilizza i nomi dei blocchi per analizzare le immagini. Se l’immagine non si trova in un blocco gestito attualmente dal plugin, il suo markup non verrà ripulito.
Il post di WP è stato un copia-incolla da Facebook, ecco un esempio del codice HTML.
Le immagini erano emoji immagine:
<div dir="auto"><span class="pq6dq46d tbxw36s4 knj5qynh kvgmc6g5 ditlmg2l oygrvhab nvdbi5me sf5mxxl7 gl3lb2sf hhz5lgdu"><img src="https://static.xx.fbcdn.net/images/emoji.php/v9/t34/1/16/1f914.png" alt="🤔" width="16" height="16"></span>Commento? Avete 1 mese per inviarci i vostri più bei componimenti e/o disegni sul tema del monociclo, ciò che vi evoca, la vostra passione per questo sport, ecc.</div>
Non ho la stessa barra laterale che hai tu nell’editor a blocchi, quindi ho visualizzato il contenuto HTML del blocco con questa opzione:
Se il problema si verifica perché non si tratta di contenuto WP “normale” ma di un copia-incolla HTML, non è un problema. Dirò ai miei utenti di evitare di copiare e incollare le immagini, anche le emoji.
Sì, penso che il problema qui sia che l’HTML è stato copiato nell’articolo di WordPress. Il plugin WP Discourse dovrebbe essere in grado di gestire le immagini aggiunte tramite un blocco immagine. Non è configurato per correggere l’HTML delle immagini aggiunte in qualsiasi altro modo.
Idealmente, Discourse sarebbe in grado di gestire i tag HTML delle immagini racchiusi in altri tag HTML, ma si tratta di un problema complesso. È possibile che il plugin WP Discourse possa essere aggiornato per gestire le immagini aggiunte al di fuori dei blocchi immagine. La mia speranza era che la gestione dei blocchi immagine coprisse la maggior parte dei casi, ma sembrano esserci molte eccezioni.
Ho letto questo argomento e l’altro principale che tratta delle immagini.
La pubblicazione di un estratto dal mio sito su Discourse funziona perfettamente. Tuttavia, quando faccio clic sul pulsante Mostra post completo, sembra entrare in un ciclo di caricamento e non carica mai il post completo (o non fa nulla del genere).
Se provo a pubblicare il post completo su Discourse, funziona anche questo, con alcune stranezze:
le immagini non si caricano (è così che ho trovato questi argomenti);
carica il post completo (ho diversi pulsanti/link all’interno del contenuto di ogni post che potrebbero confondere il plugin), ma carica anche un estratto del post perfettamente formattato alla fine del post completo per qualche motivo. In altre parole, carica il post completo (meno le immagini) e poi carica un altro estratto dello stesso post in fondo al post.
Una cosa da notare: il mio sito WP è in modalità staging e non utilizza HTTPS. Il mio sito Discourse è HTTPS. Pensavo che il caricamento del post completo potesse essere il problema del sito in staging, ma altre cose sembrano funzionare (ad esempio, forzare gli aggiornamenti delle categorie).
Capisco che si tratti di un problema complesso. Avere un plugin che formatta i post di qualcun altro mentre tutti facciamo cose diverse sarebbe incredibilmente impegnativo e penso che il team di Discourse abbia fatto un lavoro ammirevole. Sto solo cercando di trovare una soluzione alternativa il più semplice possibile. Forse basta Oneboxing il link al post? Almeno il post (o un link ad esso) sarebbe sul sito Discourse, ma non ci sarebbe alcun coordinamento avanti e indietro.
Grazie per qualsiasi suggerimento che qualcuno possa avere.
Il problema potrebbe essere che Discourse non riesce a trovare alcun contenuto nella pagina di WordPress. Non mi aspetterei comunque che questo causi un ciclo. Discourse dovrebbe semplicemente fallire in silenzio se non riesce a trovare alcun contenuto nella pagina. Nel caso tu stia testando questo con un post privo di contenuto reale, prova a creare un post con del testo effettivo e vedi se questo fa la differenza. Potresti anche dare un’occhiata a Come configurare l’impostazione selettori di incorporamento consentiti. L’impostazione allowed embed selectors può essere utilizzata per aiutare Discourse a trovare il contenuto della pagina.
Stai usando l’Editor a blocchi per pubblicare i tuoi post di WordPress? Se sì, come vengono aggiunte le immagini ai post? Stai usando un plugin che aggiunge blocchi immagine personalizzati?
L’estratto del post che viene caricato include le immagini del post?
Non mi aspetterei che l’estratto venga caricato automaticamente qui. Mi aspetterei invece che venga visualizzato il pulsante “Mostra post completo”. Cliccando quel pulsante dovrebbe essere caricato l’estratto. Quando il contenuto completo del post viene pubblicato da WordPress su Discourse, puoi impedire la visualizzazione del pulsante “Mostra post completo” disabilitando l’impostazione del sito Discourse embed truncate.
Questa potrebbe essere una buona soluzione per te. Dai un’occhiata a Customize the structure of WP Discourse templates per i dettagli su come personalizzare il modello utilizzato per pubblicare i post. C’è un esempio di modello per pubblicare il post come onebox qui.
Ho seguito i tuoi suggerimenti, ma non sono riuscito a cambiare l’esito, il che probabilmente è più un problema delle mie competenze con Discourse che altro.
Il tuo primo suggerimento era di assicurarsi che il post avesse del contenuto. I post avevano effettivamente del contenuto reale, quindi non credo che questo fosse il problema. Hai anche suggerito di configurare l’impostazione “How to Configure the allowed embed selectors”, cosa che ho fatto, ma non ho ancora notato alcuna differenza. Ho mantenuto questa impostazione molto semplice, includendo anche i tag
e un’altra classe CSS (abbastanza generica), ma quando faccio clic su “Show Full Post”, continua a dire “Loading”.
Sto utilizzando l’editor a blocchi. Non ho plugin specifici per le immagini, ma uso Genesis Blocks. Tuttavia, l’immagine che Discourse sta cercando di importare è l’immagine in evidenza del post, che credo sia nativa di WordPress.
Per quanto riguarda la tua domanda: “L’estratto del post caricato include le immagini del post?” - No, il post non include alcuna immagine. Tuttavia, se faccio clic dove dovrebbe apparire l’immagine, vengo reindirizzato all’articolo originale.
Esaminerò ulteriormente l’opzione Oneboxing. Grazie anche per i link a quell’argomento.
Potrebbe essere questa la causa del problema con quell’immagine. Me ne occuperò.
Non sono sicuro di cosa possa star succedendo in questo caso. Se il tuo sito Discourse è pubblico, puoi condividere un link a un argomento che presenta questo problema? Puoi inviarmelo in un messaggio privato se preferisci.
Grazie ancora per questo. Il sito è ancora in staging e non è pubblico. Potrebbe essere questo il problema?
Inoltre, per qualche motivo, la Oneboxing non funziona. Se incollo un link, ad esempio da CNN.com, la Oneboxing funziona benissimo, ma dal mio sito di staging non sicuro (non HTTPS), viene incollato semplicemente un link. È perché il sito di staging non è sicuro?
Mantenere il sito Discourse privato non dovrebbe causare problemi. Stai nascondendo il sito WordPress in qualche modo? Se il sito WordPress sta bloccando le richieste da Discourse per ottenere il contenuto completo del post, questo causerebbe un problema.
Il sito Discourse è pubblico. Mi piacerebbe nasconderlo durante lo sviluppo, ma non sono riuscito a capire come metterlo in staging. Ho un sito WP principale che si trova in staging/sviluppo e quel sito è privato/nascosto.
Riesco a forzare un aggiornamento della categoria dal plugin WP. Immagino, probabilmente in modo errato, che questo significasse che Discourse potesse contattare il sito principale anche se il sito principale era in staging.