definindo comentários como padrão para páginas e tipos de postagem personalizados?

19

Desejo desativar os comentários por padrão com páginas e pós-tipos personalizados

Inicialmente, eu simplesmente usei condicionais na função de exibição de comentários para evitar a exibição do bloco nessas páginas, mas preciso que o usuário possa ativar os comentários de volta conforme necessário.

    
por Mild Fuzz 21.09.2010 / 12:20

6 respostas

8

Pelo que entendi, você deseja definir as páginas e alguns tipos de post personalizado para que o comentário seja "off" por padrão, enquanto as postagens ainda usarão a opção padrão (ou seja, comentando 'on'). Se este for o caso, a seguinte função fará isso.

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' );
    
por sorich87 22.09.2010 / 08:38
10

Quando você cria uma nova postagem (tipo personalizado ou regular), o WordPress chama get_default_post_to_edit , que define os valores padrão que uma nova postagem terá.

Esta função fornece alguns ganchos de filtro para alterar o título, conteúdo e trecho padrão, mas infelizmente nada mais ... no entanto, cada filtro passa o objeto $post completo para o retorno de chamada, essencialmente isso significa que é possível redefinir vários propriedades (ou apenas uma, se quisermos)

Isso deve funcionar para você, basta adicionar os tipos de postagem aos quais o código deve se aplicar como casos dentro da opção. (filme e página são exemplos).

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 );

O código foi testado no WP 3.0.1 e tem o efeito desejado de desativar comentários especificamente para os tipos de postagem, enquanto outros deixam de herdar o status padrão da opção default_comment_status .

Espero que ajude ....:)

    
por t31os 09.11.2010 / 16:51
2

Eu escrevi um plugin para desativar comentários em páginas por padrão. enlace

Talvez isso ajude?

    
por Techism 24.09.2010 / 20:53
1

De acordo com este tópico , o que você está solicitando é isn possível sem o uso de um plugin personalizado ou função para realizá-lo.

    
por Travis Northcutt 21.09.2010 / 16:16
1

Eu recomendaria ainda usar suas condicionais na exibição de comentários, mas use opções para armazenar suas configurações condicionais. Em seguida, você pode adicionar uma página ao menu "Configurações", que permite aos administradores ativar ou desativar comentários conforme necessário.

Atualizar

Ocorre que você deseja definir o padrão para comentários como "desativado" como uma configuração global, em vez de defini-lo como "desativado" sempre que você cria uma página. Este é possível.

Vá para Configurações > > Discussão na seção de administração do WordPress. Na primeira seção ("Configurações padrão do artigo", você verá uma opção chamada "Permitir que as pessoas postem comentários em novos artigos" ... desmarque essa opção.

Agora, por padrão, os comentários serão desativados para todos os novos posts, páginas e tipos de postagem personalizados. Você ainda pode ativar os comentários "on" caso a caso selecionando a caixa de seleção apropriada na caixa meta "Discussão" na tela de edição de postagem / página individual.

    
por EAMann 21.09.2010 / 16:39
-2

Se você simplesmente adicionar este código em functions.php

<?php
add_post_type_support( 'your_custom_post_type', array( 'comments' ) );
?>

Vá para a postagem e, nas opções de tela, marque "Discussão" e "Comentários", você pode ativar / desativar comentários para cada tipo de postagem personalizada.

    
por kaizer1v 05.11.2011 / 09:23

Tags