Insertar código en code snippets
<div style="text-align: center; margin: 20px 0;">
<a href="https://ariapsa.com/mb" target="_blank">
<img src="https://ariapsa.com/wp-content/uploads/2024/08/Marca-blanca-Diseno-de-paginas-web-mexico-ariapsa.jpg" alt="Banner" style="max-width: 100%; height: auto;">
</a>
</div>
// Crear el shortcode para la caja de comentarios con estilos personalizados
function custom_comment_box_shortcode() {
if (post_password_required()) {
return 'Este contenido está protegido por contraseña.';
}
ob_start();
echo '<div id="custom-comment-box">';
// Mostrar los comentarios y el formulario de comentarios
if (comments_open() || get_comments_number()) {
comments_template();
}
echo '</div>';
return ob_get_clean();
}
// Filtrar el formulario de comentarios para cambiar el texto y ocultar el número de comentarios
function custom_comment_form_defaults($defaults) {
$defaults['title_reply'] = 'Iniciar conversación'; // Cambiar el título
return $defaults;
}
add_filter('comment_form_defaults', 'custom_comment_form_defaults');
// Filtrar los comentarios visibles según el rol del usuario y la propiedad de los comentarios
function private_comments_for_subscribers($comments, $post_id) {
if (!is_user_logged_in()) {
// Si el usuario no está logueado, no mostrar comentarios
return array();
}
$current_user = wp_get_current_user();
// Si el usuario es administrador, mostrar todos los comentarios
if (in_array('administrator', $current_user->roles)) {
return $comments;
}
// Para los suscriptores, mostrar solo sus propios comentarios y las respuestas del administrador
$filtered_comments = array();
foreach ($comments as $comment) {
// Mostrar comentarios propios o respuestas del administrador a sus comentarios
if ($comment->user_id == $current_user->ID || (user_can($comment->user_id, 'administrator') && $comment->comment_parent != 0 && get_comment($comment->comment_parent)->user_id == $current_user->ID)) {
$filtered_comments[] = $comment;
}
}
return $filtered_comments;
}
add_filter('comments_array', 'private_comments_for_subscribers', 10, 2);
// Filtrar los comentarios para estilizar las respuestas del administrador
function custom_comment_list($comment, $args, $depth) {
$GLOBALS['comment'] = $comment;
$tag = ( 'div' === $args['style'] ) ? 'div' : 'li';
$add_below = 'comment';
// Detectar si el comentario es del administrador
$admin_class = '';
if (user_can($comment->user_id, 'administrator')) {
$admin_class = ' admin-comment';
}
echo '<' . $tag . ' ' . comment_class(empty($args['has_children']) ? '' : 'parent' . $admin_class, null, null, false) . ' id="comment-' . get_comment_ID() . '">';
echo '<div class="comment-body' . $admin_class . '">';
// Mostrar el avatar del usuario
echo get_avatar($comment, 64);
echo '<div class="comment-meta">';
echo '<div class="comment-author vcard">';
printf(__('<cite class="fn">%s</cite>'), get_comment_author_link());
echo '</div>';
echo '<div class="comment-metadata"><a href="' . esc_url(get_comment_link($comment->comment_ID)) . '">' . sprintf(__('%1$s at %2$s'), get_comment_date(), get_comment_time()) . '</a></div>';
echo '</div>';
if ($comment->comment_approved == '0') {
echo '<em class="comment-awaiting-moderation">' . __('Your comment is awaiting moderation.') . '</em>';
}
comment_text();
echo '<div class="reply">';
comment_reply_link(array_merge($args, array('add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth'])));
echo '</div>';
echo '</div>';
echo '</' . $tag . '>';
}
// Añadir los filtros y acciones
add_shortcode('comment_box', 'custom_comment_box_shortcode');
add_filter('wp_list_comments_args', function($args) {
$args['callback'] = 'custom_comment_list'; // Usar la función personalizada para los comentarios
return $args;
});
Insertar estilos en code snippets
add_action( 'wp_head', function () { ?>
<style>
/* Ocultar el número de comentarios */
#comments h2 {
display: none;
}
/* Estilo personalizado para la caja de comentarios */
#custom-comment-box {
margin-top: 20px;
}
/* Estilo para la respuesta del administrador */
.comment-body.admin-comment {
background-color: #f8e39b;
padding: 15px;
border-radius: 5px;
text-align: right; /* Alinear el comentario del administrador a la derecha */
}
/* Alinear el avatar del administrador a la derecha */
.comment-body.admin-comment .avatar {
float: right;
margin-left: 10px;
}
/* Alinear el avatar del suscriptor a la izquierda */
.comment-body .avatar {
float: left;
margin-right: 10px;
}
/* Aumentar el tamaño y negrita del nombre de usuario */
.comment-author.cite.fn {
font-size: 18px;
font-weight: 600;
}
</style>
<?php } );
Añadir shortcode en cualquier parte de tu sitio web, considere ajustar corchetes.
[ comment_box ]