Problema di debug con la pubblicazione di un tipo di post personalizzato come vuoto

Sto aggiungendo un’altra sezione IF per un altro tipo di contenuto personalizzato a WP Discourse: advanced custom filter for discourse_publish_format_html - #12 by Kayla … questo è lo stesso tipo di contenuto che volevo limitare a un argomento Discourse specifico e pubblicare automaticamente, come descritto nel mio recente argomento Filtering the available categories for a custom post type. I post vengono pubblicati automaticamente nell’argomento corretto, ma i campi personalizzati che sto cercando di includere in discourse_publish_format_html risultano vuoti. Ho ricontrollato quattro volte tutti i nomi dei campi e sembra che, oltre ai valori dei campi stessi, tutto il resto arrivi correttamente su Discourse.

Mi chiedo se uno di questi fattori possa essere la causa:

  1. Il CPT è stato creato in WordPress tramite il plugin Gravity Forms Advanced Post Creation Add-On
  2. Al CPT è applicato Toolset Access, quindi solo gli editori possono vedere questi post specifici; lo stato in WP è “pubblicato”
  3. Il CPT viene pubblicato in una categoria privata di Discourse

Ciò che arriva effettivamente su Discourse sono il titolo del post/argomento, {author} e {blogurl}. Forse la chiave sta nel fatto che anche {excerpt} restituisce un valore vuoto, insieme ai campi personalizzati?

1 Mi Piace

Aggiornamento: la disattivazione completa dell’accesso a Toolset e/o la creazione di un post tramite WordPress invece che tramite il modulo Gravity non ha risolto il problema dei campi personalizzati vuoti. D’altro canto, {excerpt} ha iniziato a essere visualizzato correttamente…

1 Mi Piace

Per chiarire, Toolset Access non sembra avere alcuna influenza su questa differenza con {excerpt}.

Se creo un post tramite l’amministratore di WP, {excerpt} viene recepito (il post utilizza l’editor a blocchi). {excerpt} viene pubblicato vuoto se creato tramite Gravity Form (che genera un blocco “classico” per contenere il campo WYSIWYG).

I campi personalizzati (riga singola, righe multiple e numero) restituiscono comunque valori vuoti, indipendentemente da come viene creato il post.

1 Mi Piace

Dopo aver pubblicato il post, vedi un avviso simile a questo nella barra laterale di Discourse dell’editor?

Se il messaggio di “successo” non viene visualizzato, ma il post è stato pubblicato, il problema risiede nella configurazione del tipo di post personalizzato.

Se il messaggio di “successo” viene visualizzato, i campi personalizzati dovrebbero essere disponibili come metadati del post e recuperabili con get_post_meta( $post_id, 'your_meta_key_name', true );. Il modo più semplice per capire cosa sta succedendo è scrivere in un file debug.log dalla tua funzione cosmos_custom_publish_format_html.

Sono fuori dall’ufficio per questa settimana, quindi potrei rispondere alle domande più lentamente del solito.

2 Mi Piace

Ho finalmente individuato il problema: sembra che l’origine sia l’opzione di pubblicazione automatica (un altro nuovo fattore, trascurato). Se deseleziono questa opzione, pubblico il post su WordPress e poi lo pubblico su Discourse, i campi personalizzati vengono trasferiti su Discourse e visualizzati correttamente. Oppure, se permetto che avvenga la pubblicazione automatica, i campi appariranno su Discourse dopo aver cliccato su “Aggiorna argomento Discourse” su WordPress. Sembra quindi che, quando il post viene pubblicato automaticamente, la pubblicazione avvenga prima che i dati nei campi personalizzati siano stati salvati correttamente su WordPress.

2 Mi Piace