De ce sunt comentariile dezactivate implicit pentru custom_post_types?

10 ian. 2012, 02:27:34
Vizualizări: 49.1K
Voturi: 10

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.
        )
    );
}
0
Toate răspunsurile la întrebare 4
0
15

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:

  1. În SETĂRI > DISCUȚIE debifați opțiunea "Permiteți oamenilor să posteze comentarii la articole noi".
  2. Faceți clic pe "Salvare modificări"
  3. Acum reveniți și bifați din nou "Permiteți oamenilor să posteze comentarii la articole noi"
  4. 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...

11 ian. 2012 00:20:35
6
14

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' );
10 ian. 2012 02:53:47
Comentarii

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.

timshutes timshutes
10 ian. 2012 17:03:20

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/

Sagive Sagive
10 ian. 2012 17:37:20

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.

timshutes timshutes
10 ian. 2012 23:42:10

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.

timshutes timshutes
10 ian. 2012 23:46:24

Î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

Sagive Sagive
11 ian. 2012 01:00:42

A trebuit să o modific în $data['comment_status'] = 'open'; ca să funcționeze.

Dipak Kumar Pusti Dipak Kumar Pusti
17 dec. 2019 18:29:40
Arată celelalte 1 comentarii
1

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' );
22 iun. 2015 22:17:12
Comentarii

Acesta este cu siguranță cel mai bun răspuns. Mai ales în cazul meu, unde de fapt elimin caseta meta a panoului de discuții. A funcționat perfect, mulțumesc.

dylzee dylzee
3 iun. 2022 10:45:28
1

Doar încercând la întâmplare, dar trebuie să adaugi "comments" la parametrul array supports în apelul register_post_type()?

10 ian. 2012 02:36:06
Comentarii

deja există - pot vedea panoul de discuții ȘI îl pot folosi pentru a activa comentariile pe fiecare postare în parte, dar este debifat în mod implicit în ciuda setărilor mele la nivel de site care au comentariile activate.

timshutes timshutes
10 ian. 2012 23:47:57