Perché i commenti sono disabilitati di default nei miei custom_post_types?
Sto utilizzando un custom post type + tassonomie in una soluzione podcast per un cliente. L'impostazione (impostazioni >> discussione) per i commenti è impostata su "consenti commenti". Quando aggiungo/modifico articoli nella scheda "articoli", i commenti sono abilitati di default.
Tuttavia, quando aggiungo/modifico articoli nel custom post type (podcast) - i commenti sono disabilitati di default.
L'utente può ancora abilitare manualmente i commenti per ogni articolo, ma ovviamente questo non è l'ideale. Suggerimenti?
AGGIORNAMENTO: Codice rilevante in functions.php
function create_my_post_types() {
register_post_type( 'podcast',
array(
'labels' => array(
'name' => __( 'Podcast' ),
'singular_name' => __( 'Podcast' ),
'new_item' => __( 'Nuovo Episodio' ),
'add_new_item' => __( 'Aggiungi Nuovo Episodio' )
),
'public' => true,
'hierarchical' => true,
'menu_icon' => get_stylesheet_directory_uri() . '/assets/podcast-icon.png', // 16px16
'menu_position' => 9,
'supports' => array( 'title', 'editor', 'comments', 'post-templates'),
'register_meta_box_cb' => 'add_podcast_metaboxes' // Questo registra il metabox che aggiungeremo più tardi.
)
);
}

Ok - quindi ho risolto questo problema. Ecco quale sembra essere il problema.
I commenti sono disabilitati di default per i custom-post-type. Questo accade anche se li hai abilitati nelle impostazioni generali
Per risolverlo, tutto quello che ho dovuto fare è stato:
- In IMPOSTAZIONI > DISCUSSIONE deseleziona l'opzione "Consenti alle persone di inviare commenti sui nuovi articoli"
- Clicca "Salva modifiche"
- Ora torna indietro e ri-seleziona "Consenti alle persone di inviare commenti sui nuovi articoli"
- Clicca "Salva modifiche"
Sembra che per i custom post type sia necessario in qualche modo riavviare questa impostazione. Tutti i nuovi post creati per i custom-post-type avranno la casella abilitata di default. I post esistenti manterranno la loro impostazione precedente. Presumo che sia lo stesso per consentire i trackback. Spero che questo aiuti qualcuno...

Questo è lo stato predefinito... devi modificare la riga "Supports" quando crei il tuo custom post type..
Significa questa riga:
// o qualcosa di simile che inizia allo stesso modo
'supports' => array('title','editor','author','excerpt','revisions'),
In questa riga:
'supports' => array('title','editor','author','excerpt','comments','revisions'),
Spero sia utile.
Saluti, Sagive.
FUNZIONE AGGIUNTA (NEL FILE FUNCTIONS.PHP):
function default_comments_on( $data ) {
if( $data['post_type'] == 'your_custom_post_name' ) {
$data['comment_status'] = 1;
}
return $data;
}
add_filter( 'wp_insert_post_data', 'default_comments_on' );

Ciao - ho già inserito correttamente quel codice in functions.php. La mia comprensione è che la casella dei commenti non apparirebbe nemmeno se non fosse abilitata nel modo che descrivi. Il mio problema è che appare, ma è deselezionata per impostazione predefinita anche se ho impostato il valore predefinito su abilitato in Impostazioni > Discussione.

ohh.. quindi penso che sia solo tu a vedere quell'opzione in quel modo... sono le tue preferenze.. assicurati di spuntare entrambe le opzioni (o quella che desideri) nel modulo Discussione (vedi immagine: http://en.support.files.wordpress.com/2009/12/wpcom-discussion-module-off.png) e dovresti essere a posto. Ulteriori informazioni su queste impostazioni possono essere trovate qui: http://en.support.wordpress.com/enable-disable-comments/

Immagino di non essere stato chiaro... quelle sono già spuntate e il risultato è che i commenti sono abilitati per tutti i miei post TRANNE che per i custom post type che devono ancora essere modificati manualmente. Sembra un bug, o qualcosa che devo aggiungere in functions.php ma non riesco a trovare nulla nel codex.

aspetta - no quella volta ho frainteso - tu stai parlando del modulo nella finestra di modifica articolo. Posso sicuramente abilitare i commenti o i trackback spuntando quelle caselle. TUTTAVIA, vorrei che quelle caselle fossero spuntate di default così il mio cliente non deve ricordarsi di farlo OGNI volta che pubblica un nuovo episodio podcast. Pensavo che abilitare i commenti nell'area Discussione >> Impostazioni di Admin avrebbe risolto, ma è ancora deselezionato di default.

Penso ancora che se appare (la casella commenti/trackback) e tu salvi l'articolo con loro attivi dovrebbe diventare lo stato di default... MA ho aggiunto del codice alla mia risposta originale - provato su 3.01 che sto usando... spero aiuti

Nessuno dei seguenti suggerimenti ha funzionato per me. La funzione di Sagive SEO ha quasi funzionato. Ho controllato il mio database e ho scoperto che gli unici valori per comment_status sono open e closed. Quella funzione inseriva 1 come valore. Ho rivisto la funzione e ora sembra funzionare perfettamente. Spero che questo possa aiutare qualcuno.
function default_comments_on( $data ) {
if( $data['post_type'] == 'your_custom_post_type_name' ) {
$data['comment_status'] = 'open';
}
return $data;
}
add_filter( 'wp_insert_post_data', 'default_comments_on' );
