it-swarm.dev

nastavení komentářů jako výchozích pro stránky a vlastní typy příspěvků?

Chci tyto komentáře ve výchozím nastavení vypnout pomocí stránek a vlastních post-typů

Zpočátku jsem jednoduše použil podmínky v zobrazovací funkci komentáře, aby se zabránilo zobrazení bloku na těchto stránkách, ale potřebuji, aby uživatel mohl komentáře zapnout podle potřeby.

19
Mild Fuzz

Z toho, co chápu, chcete nastavit stránky a některé vlastní typy příspěvků tak, aby byly ve výchozím nastavení komentovány „vypnuto“, zatímco příspěvky budou stále používat výchozí možnost (tj. Komentovat „zapnuto“). V takovém případě to provede následující funkce.

function default_comments_off( $data ) {
    if( $data['post_type'] == 'page' && $data['post_status'] == 'auto-draft' ) {
        $data['comment_status'] = 0;
    }

    return $data;
}
add_filter( 'wp_insert_post_data', 'default_comments_off' );
8
sorich87

Když vytvoříte nový příspěvek (vlastní typ nebo běžný), volání WordPress get_default_post_to_edit, která pak nastaví výchozí hodnoty, které bude mít nový příspěvek.

Tato funkce poskytuje několik filtrových háčků pro změnu výchozího názvu, obsahu a výňatku, ale bohužel nic jiného ... nicméně každý filtr prochází podél celého objektu $post na zpětné volání, což v podstatě znamená, že je možné předefinovat několik vlastností (nebo jen jeden) pokud se nám líbí)

To by mělo fungovat pro vás, jednoduše přidejte typy příspěvků, které by měl kód platit jako případy uvnitř přepínače .. (film a stránka jsou příklady).

function my_default_content( $post_content, $post ) {
    if( $post->post_type )
    switch( $post->post_type ) {
        case 'page':
        case 'movie':
            $post->comment_status = 'closed';
        break;
    }
    return $post_content;
}
add_filter( 'default_content', 'my_default_content', 10, 2 );

Kód byl testován na WP 3.0.1 a má požadovaný účinek, který znemožňuje komentáře pro typy příspěvků, přičemž ostatní ponechávají ostatním možnost zdědit výchozí stav z volby default_comment_status.

Doufám, že to pomůže .... :)

10
t31os

Ve výchozím nastavení jsem napsal plugin pro zakázání komentářů na stránkách. http://wordpress.org/extend/plugins/page-comments-off-please/

Možná to pomůže?

2
Techism

Podle toto vlákno , to, co požadujete, není možné bez použití vlastního pluginu nebo funkce k jeho dosažení.

1
Travis Northcutt

Doporučil bych vám, abyste stále používali vaše podmínky v zobrazení komentářů, ale pomocí možností uložte podmíněná nastavení. Poté můžete přidat stránku do nabídky Nastavení, která umožňuje správcům zapnout nebo vypnout komentáře podle potřeby.


Aktualizace

Zdá se mi, že chcete nastavit výchozí hodnotu pro komentování na hodnotu „vypnuto“ jako globální nastavení namísto nastavení na hodnotu „vypnuto“ při každém vytvoření stránky. Toto je možné.

Přejděte do Nastavení >> Diskuse v sekci Správce WordPressu. V první části („Výchozí nastavení článku“ se zobrazí možnost „Povolit uživatelům odesílat komentáře k novým článkům“ ... zrušte zaškrtnutí této možnosti).

Ve výchozím nastavení budou komentáře vypnuty pro všechny nové příspěvky, stránky a vlastní typy příspěvků. Stále můžete zapnout komentáře zpět na "on" případ od případu výběrem příslušného zaškrtávacího políčka v poli "Diskuse" meta na obrazovce individuální úpravy příspěvků/stránek.

1
EAMann