¿Desactiva los comentarios como predeterminados para páginas y tipos de publicaciones personalizadas?

19

Quiero desactivar los comentarios de forma predeterminada con páginas y post-tipos personalizados

Inicialmente, simplemente usé condicionales en la función de visualización de comentarios para evitar mostrar el bloque en estas páginas, pero necesito que el usuario pueda volver a activar los comentarios según sea necesario.

    
pregunta Mild Fuzz 21.09.2010 - 12:20

6 respuestas

8

Por lo que entiendo, desea configurar las páginas y algunos tipos de publicaciones personalizadas para que los comentarios estén desactivados de forma predeterminada, mientras que las publicaciones seguirán usando la opción predeterminada (es decir, los comentarios están activados). Si este es el caso, la siguiente función lo hará.

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

Cuando crea una nueva publicación (tipo personalizado o regular), WordPress llama a get_default_post_to_edit , que luego establece los valores predeterminados que tendrá una nueva publicación.

Esta función proporciona algunos enlaces de filtro para cambiar el título, el contenido y el extracto predeterminados, pero desafortunadamente nada más ... sin embargo, cada filtro pasa el objeto $post completo a la devolución de llamada, esencialmente esto significa que es posible redefinir varios propiedades (o solo una si nos gusta)

Esto debería funcionar para usted, simplemente agregue los tipos de publicación a los que se aplicará el código como casos dentro del conmutador .. (la película y la página son ejemplos) ..

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

El código se probó en WP 3.0.1 y tiene el efecto deseado de deshabilitar los comentarios para los tipos de publicación específicamente, mientras que otros heredan el estado predeterminado de la opción default_comment_status .

Espero que ayude .... :)

    
respondido por el t31os 09.11.2010 - 16:51
2

He escrito un complemento para deshabilitar los comentarios en las páginas de forma predeterminada. enlace

Quizás eso ayude?

    
respondido por el Techism 24.09.2010 - 20:53
1

Según este hilo , lo que está solicitando no es No es posible sin el uso de un complemento personalizado o una función para lograrlo.

    
respondido por el Travis Northcutt 21.09.2010 - 16:16
1

Recomiendo seguir usando sus condicionales en la pantalla de comentarios, pero use las opciones para almacenar sus configuraciones condicionales. Luego, puede agregar una página al menú Configuración que permite a los administradores activar o desactivar los comentarios según sea necesario.

Actualizar

Se me ocurre que desea configurar el valor predeterminado para comentar en "off" como una configuración global en lugar de configurarlo en "off" cada vez que crea una página. Esto es posible.

Ir a Configuración > > Discusión en la sección de administración de WordPress. En la primera sección ("Configuración predeterminada de artículos" verá una opción llamada "Permitir que las personas publiquen comentarios sobre nuevos artículos" ... desmarque esta opción.

Ahora, de forma predeterminada, los comentarios se desactivarán para todas las nuevas publicaciones, páginas y tipos de publicaciones personalizadas. Aún puede volver a activar los comentarios caso por caso seleccionando la casilla de verificación correspondiente en el cuadro de "Discusión" en la pantalla de edición de publicación / página individual.

    
respondido por el EAMann 21.09.2010 - 16:39
-2

Si simplemente agrega este código en functions.php

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

Vaya a la publicación, y en las opciones de pantalla, marque "Discusión" y "Comentarios", puede habilitar / deshabilitar comentarios para cada tipo de publicación personalizada.

    
respondido por el kaizer1v 05.11.2011 - 09:23

Lea otras preguntas en las etiquetas