De ce sunt comentariile dezactivate implicit pentru custom_post_types?
Folosesc un tip personalizat de postare (custom post type) + taxonomii într-o soluție de podcast pentru un client. Setarea (setări >> discuții) pentru comentarii este setată pe "permite comentarii". Când adaug/editez articole în secțiunea "articole", comentariile sunt activate implicit.
Cu toate acestea, când adaug/editez articole în tipul personalizat de postare (podcast) - comentariile sunt dezactivate implicit.
Utilizatorul poate activa manual comentariile pentru fiecare postare, dar acest lucru nu este ideal. Sugestii?
ACTUALIZARE: Cod relevant în functions.php
function create_my_post_types() {
register_post_type( 'podcast',
array(
'labels' => array(
'name' => __( 'Podcast' ),
'singular_name' => __( 'Podcast' ),
'new_item' => __( 'Episod Nou' ),
'add_new_item' => __( 'Adaugă Episod Nou' )
),
'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' // Aceasta înregistrează metabox-ul pe care îl vom adăuga mai târziu.
)
);
}

Bine - deci am rezolvat această problemă. Iată ce pare a fi problema.
Comentariile sunt dezactivate implicit pentru tipurile de postare personalizate (custom-post-types). Acest lucru se întâmplă chiar dacă le aveți activate în setările generale.
Pentru a remedia, tot ce a trebuit să fac a fost următorul lucru:
- În SETĂRI > DISCUȚIE debifați opțiunea "Permiteți oamenilor să posteze comentarii la articole noi".
- Faceți clic pe "Salvare modificări"
- Acum reveniți și bifați din nou "Permiteți oamenilor să posteze comentarii la articole noi"
- Faceți clic pe "Salvare modificări"
Se pare că pentru tipurile de postare personalizate trebuie să "porniți" cumva această setare. Toate noile postări pentru tipurile de postare personalizate create vor avea caseta activată implicit. Postările existente vor păstra setarea anterioară. Presupun că este la fel pentru permisiunea de trackbacks. Sper că acest lucru va ajuta pe cineva...

Aceasta este starea implicită... trebuie să modifici linia "Supports" unde definești tipul personalizat de postare (custom post type)...
Adică această linie:
// sau ceva similar care începe la fel
'supports' => array('title','editor','author','excerpt','revisions'),
În această linie:
'supports' => array('title','editor','author','excerpt','comments','revisions'),
Sper că te ajută.
Noroc, Sagive.
FUNCȚIE ADĂUGATĂ (ÎN FIȘIERUL FUNCTIONS.PHP):
function default_comments_on( $data ) {
if( $data['post_type'] == 'numele_tau_de_postare_personalizata' ) {
$data['comment_status'] = 1;
}
return $data;
}
add_filter( 'wp_insert_post_data', 'default_comments_on' );

Bună - deja am acel cod introdus corect în functions.php. După înțelegerea mea, caseta de comentarii nici nu ar apărea dacă nu ar fi activată în modul descris de tine. Problema mea este că apare, dar este nebilțată în mod implicit, deși am setat ca implicit să fie activată în Setări > Discuții.

ohh.. deci cred că doar tu vezi acea opțiune în acel fel... sunt preferințele tale... asigură-te că bifezi ambele opțiuni (sau cea pe care o dorești) în modulul Discuții (vezi imaginea: http://en.support.files.wordpress.com/2009/12/wpcom-discussion-module-off.png) și ar trebui să fie totul în regulă.. Mai multe informații despre acele setări pot fi găsite aici: http://en.support.wordpress.com/enable-disable-comments/

Cred că nu am fost clar... acelea sunt deja bifate și rezultatul este că comentariile sunt activate pentru toate articolele mele, EXCEPT pentru tipurile personalizate de postări care încă trebuie editate manual. Pare a fi o eroare sau ceva ce trebuie să adaug în functions.php, dar nu găsesc nimic în codex.

așteptați - nu, atunci am înțeles greșit - vorbiți despre modulul din fereastra de editare a postării. Cu siguranță pot activa comentariile sau trackback-urile bifând acele casete. ÎNSĂ, aș dori ca acele casete să fie bifate în mod implicit, astfel încât clientul meu să nu trebuiască să-și amintească să facă asta DE FIECARE DATĂ când postează un nou episod de podcast. Am crezut că activarea comentariilor în zona Discussion >> Settings din Admin va rezolva problema, dar încă este debifată în mod implicit.

Încă cred că dacă apare (caseta de comentarii/trackback) și ai salva postarea cu ele activate, ar deveni starea implicită... DAR am adăugat niște cod în răspunsul meu original - l-am testat pe versiunea 3.01 pe care o folosesc... sper să vă ajute

Nici una dintre sugestiile următoare nu a funcționat pentru mine. Funcția Sagive SEO a funcționat parțial. Am verificat baza mea de date și am constatat că singurele valori pentru comment_status sunt "open" și "closed". Acea funcție a inserat valoarea 1. Am revizuit funcția și acum pare să funcționeze perfect. Sper că acest lucru îi va ajuta pe alții.
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' );
