Perché i commenti sono disabilitati di default nei miei custom_post_types?

10 gen 2012, 02:27:34
Visualizzazioni: 49.1K
Voti: 10

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.
        )
    );
}
0
Tutte le risposte alla domanda 4
0
15

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:

  1. In IMPOSTAZIONI > DISCUSSIONE deseleziona l'opzione "Consenti alle persone di inviare commenti sui nuovi articoli"
  2. Clicca "Salva modifiche"
  3. Ora torna indietro e ri-seleziona "Consenti alle persone di inviare commenti sui nuovi articoli"
  4. 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...

11 gen 2012 00:20:35
6
14

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' );
10 gen 2012 02:53:47
Commenti

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.

timshutes timshutes
10 gen 2012 17:03:20

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/

Sagive Sagive
10 gen 2012 17:37:20

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.

timshutes timshutes
10 gen 2012 23:42:10

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.

timshutes timshutes
10 gen 2012 23:46:24

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

Sagive Sagive
11 gen 2012 01:00:42

Ho dovuto cambiarlo in $data['comment_status'] = 'open'; per farlo funzionare.

Dipak Kumar Pusti Dipak Kumar Pusti
17 dic 2019 18:29:40
Mostra i restanti 1 commenti
1

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' );
22 giu 2015 22:17:12
Commenti

Questa è sicuramente la migliore risposta. Specialmente nel mio caso in cui sto effettivamente rimuovendo il meta box del pannello di discussione. Ha funzionato perfettamente, grazie.

dylzee dylzee
3 giu 2022 10:45:28
1

Provando a indovinare, ma devi aggiungere "comments" all'array dei parametri supports, nella chiamata register_post_type()?

10 gen 2012 02:36:06
Commenti

già presente - posso vedere il pannello di discussione E usarlo per abilitare i commenti su base per-post, ma è deselezionato di default nonostante le impostazioni globali del mio sito abbiano i commenti abilitati.

timshutes timshutes
10 gen 2012 23:47:57