Icono ayuda

¿Necesitas ayuda?

Contactar con asesor por WhatsApp

Saltar al contenido

Ariapsa - Diseño de páginas web México

Olvídate del spam en comentarios y archivos adjuntos

He creado una versión mejorada del código que debería resolver los problemas críticos que estabas experimentando. Este nuevo código:

  1. Se enfoca específicamente en los adjuntos: Añade tratamiento especial para desactivar los comentarios en archivos adjuntos e imágenes.
  2. Usa prioridades altas en los hooks: La mayoría de las funciones tienen prioridad 999 para asegurarse de que se ejecuten después de otros plugins.
  3. Simplifica el enfoque: Elimina algunas operaciones complejas de base de datos que podrían causar conflictos.
  4. Mejora el CSS: Amplía los selectores CSS para cubrir específicamente los comentarios en adjuntos e imágenes.
  5. Atiende la API REST correctamente: Usa un método más seguro para desactivar los endpoints de comentarios.
  6. Agregué una sección específica para attachments/media: Que garantiza que los comentarios se desactiven en archivos adjuntos.

Para usar este código:

  1. Elimina el snippet anterior que causaba el error
  2. Crea un nuevo snippet en el plugin Code Snippets
  3. Pega este nuevo código
  4. Nombra el snippet (por ejemplo "Desactivar comentarios mejorado")
  5. Asegúrate de que la opción "Ejecutar en todo el sitio" esté activada
  6. Guarda y activa

Este código debería funcionar sin errores críticos y desactivar completamente los comentarios en todo el sitio, con especial atención a las imágenes y archivos adjuntos.

 


/**
* Desactivar y ocultar comentarios en WordPress
*
* Este código desactiva completamente los comentarios en todos los tipos de contenido,
* incluyendo específicamente imágenes, archivos adjuntos, páginas y entradas.
* Versión optimizada para evitar errores críticos.
* by Ariapsa-  Diseño y soporte web.
*/
// Desactivar comentarios en todo el sitio (enfoque simplificado)
function mi_deshabilitar_comentarios_completo() {
// Desactivar soporte para comentarios en todos los tipos de post
$tipos = get_post_types(['public' => true], 'names');
if (!empty($tipos)) {
foreach ($tipos as $tipo) {
if (post_type_supports($tipo, 'comments')) {
remove_post_type_support($tipo, 'comments');
remove_post_type_support($tipo, 'trackbacks');
}
}
}
// Especial atención a adjuntos (attachments)
if (post_type_supports('attachment', 'comments')) {
remove_post_type_support('attachment', 'comments');
}
// Filtrar para cerrar comentarios en todos los tipos de contenido
add_filter('comments_open', '__return_false', 99);
add_filter('pings_open', '__return_false', 99);
// Eliminar comentarios existentes de la visualización
add_filter('comments_array', '__return_empty_array', 99);
}
add_action('init', 'mi_deshabilitar_comentarios_completo', 99);
// Remover menú de comentarios y opciones relacionadas del panel de administración
function mi_remover_comentarios_admin() {
// Quitar menú de comentarios
remove_menu_page('edit-comments.php');
// Quitar conteo de comentarios pendientes del menú admin
add_action('admin_bar_menu', function($wp_admin_bar) {
$wp_admin_bar->remove_node('comments');
}, 999);
// Quitar metaboxes de comentarios
add_action('add_meta_boxes', function() {
$tipos = get_post_types(['public' => true], 'names');
foreach ($tipos as $tipo) {
remove_meta_box('commentsdiv', $tipo, 'normal');
remove_meta_box('commentstatusdiv', $tipo, 'normal');
}
}, 999);
// Ocultar sección de comentarios en Ajustes rápidos
add_action('admin_head', function() {
echo '<style>
.misc-pub-commentstatusdiv,
.misc-pub-comments,
.options-discussion-page,
.settings-discussion-page {
display: none !important;
}
</style>';
});
}
add_action('admin_init', 'mi_remover_comentarios_admin');
// Remover ajustes de discusión de las opciones
function mi_remover_opciones_discusion($caps) {
$caps['manage_options'] = true;
return $caps;
}
add_filter('comments_open', '__return_false');
add_filter('comments_array', '__return_empty_array');
// Ocultar todo lo relacionado con comentarios en el frontend
function mi_ocultar_comentarios_css() {
// CSS para ocultar cualquier elemento relacionado con comentarios
echo '<style>
/* Ocultar todo lo relacionado con comentarios */
.comments-area,
#comments,
.comment-respond,
.post-comments,
.comment-form,
#respond,
.comment-reply-link,
.comment-reply-title,
.commentlist,
.comments-link,
.comment-notes,
.logged-in-as,
.comment-form-comment,
.comment-form-author,
.comment-form-email,
.comment-form-url,
.comment-form-cookies-consent,
.form-submit,
.wp-block-comments,
.wp-block-comment-template,
.attachment-comments,
.attachment #comments,
.attachments-comments,
.attachment-comment-form {
display: none !important;
}
</style>';
}
add_action('wp_head', 'mi_ocultar_comentarios_css', 999);
add_action('admin_head', 'mi_ocultar_comentarios_css', 999);
// Desactivar widgets de comentarios
function mi_desactivar_widgets_comentarios() {
unregister_widget('WP_Widget_Recent_Comments');
}
add_action('widgets_init', 'mi_desactivar_widgets_comentarios', 999);
// Desactivar los comentarios en la API REST
function mi_desactivar_rest_comentarios() {
// Remover endpoints de comentarios en la API REST
add_filter('rest_endpoints', function($endpoints) {
if (isset($endpoints['/wp/v2/comments'])) {
unset($endpoints['/wp/v2/comments']);
}
if (isset($endpoints['/wp/v2/comments/(?P<id>[\d]+)'])) {
unset($endpoints['/wp/v2/comments/(?P<id>[\d]+)']);
}
return $endpoints;
});
}
add_action('rest_api_init', 'mi_desactivar_rest_comentarios', 999);
// Específicamente para attachments/media
function mi_quitar_comentarios_attachments() {
// Cerrar comentarios en todos los adjuntos existentes
global $wpdb;
$wpdb->query("UPDATE {$wpdb->posts} SET comment_status = 'closed', ping_status = 'closed' WHERE post_type = 'attachment'");
// Desactivar soporte para comentarios en adjuntos
remove_post_type_support('attachment', 'comments');
// Filtrar para eliminar comentarios en archivos adjuntos
add_filter('comments_open', function($open, $post_id) {
$post = get_post($post_id);
if ($post->post_type == 'attachment') {
return false;
}
return $open;
}, 999, 2);
}
add_action('init', 'mi_quitar_comentarios_attachments', 999);

 

Ariapsa - Diseño de páginas web México
×

Iniciar Sesión

El registro de usuarios no está permitido.