Diferenciar comentarios del administrador

This post was published 10 years ago. It may be exremely outdated.

En algunos blogs los comentarios que hace el administrador son de un color diferente (por ejemplo, en este blog mis comentarios aparecen con una etiqeuta que dice “Admin”).

Esto es muy sencillo de lograr en WordPress, y os voy a explicar cómo hacerlo.

Trabajaremos sobre el archivo comments.php del theme de tu blog. En mi caso trabajaré sobre el theme classic, al que le tengo mucho cariño (L) .

Abrimos el archivo comments.php.

En este archivo están tanto el código que muestra los comentarios como el que muestra el formulario para añadir comentarios, así que nuestro primer paso será diferenciar dónde comienza y acaba el código que muestra los comentarios.

De la línea 14 a la 21 encontraremos el código que muestra el texto de cada comentario, y es donde realizaremos los cambios.

Nota: Las líneas de las que hablo son las del archivo comments.php del theme classic, en otros themes serán otras líneas.

Pasos previos

Así que el código de cada comentario es el siguiente:

<li id="comment-<?php comment_ID() ?>">
<?php echo get_avatar( $comment, 32 ); ?>
<?php comment_text() ?>
<p><cite><?php comment_type(__('Comment'), __('Trackback'), __('Pingback')); ?> <?php _e('by'); ?> <?php comment_author_link() ?> &#8212; <?php comment_date() ?> @ <a href="#comment-<?php comment_ID() ?>"><?php comment_time() ?></a></cite> <?php edit_comment_link(__("Edit This"), ' |'); ?></p>
</li>

Si analizamos un poco encontraremos varios puntos de referencia:

<?php echo get_avatar( $comment, 32 ); ?>

Esto muestra los avatares en los comentarios.

<p><cite><?php comment_type(__('Comment'), __('Trackback'), __('Pingback')); ?> <?php _e('by'); ?> <?php comment_author_link() ?> &#8212; <?php comment_date() ?> @ <a href="#comment-<?php comment_ID() ?>"><?php comment_time() ?></a></cite> <?php edit_comment_link(__("Edit This"), ' |'); ?></p>

Este párrafo nos dice quién es cada autor de los comentarios.

La diferencia

En mi caso he creado una imagen que dice Admin, y que aparecerá sólo en los comentarios que yo haga.

La imagen es esta:

Así que la única diferencia que habrá en el comentario de un administrador será el siguiente código:

<p><img src="admin.png" /></p>

Dinstinguiendo a los administradores

Tenéis que saber la ID de usuario de WordPress de todos los administradores.

¿Cómo saberla? Fácil, vamos a la página de usuarios de nuestro panel de control de WordPress (miweb.com/wp-admin/users.php). Allí buscamos a los usuario que son administradores y hacemos clic en el nombre de uno de ellos.

Nos llevará a una página cuya URL será similar a esta:
http://miweb.com/wp-admin/user-edit.php?user_id=2

Bien, si nos fijamos al final de la dirección veremos user_id=2 (u otro número). Ese 2 es la ID

Una vez sabemos todas las ID de los administradores podemos pasar a editar el archivo comments.php.

¡A modificar!

Ahora sí que vamos a editar el archivo comments.php. Tenemos que añadir una condición: Si el usuario es administrador, nueva imagen para él.

Para esto haremos un query a la base de datos de nuestro blog donde compararemos si la ID del usuario que ha escrito el comentario es la misma que la de un administrador.

El código será el siguiente:

Este código se añadirá en la línea inmediatamente superior a:

<?php comment_text() ?>

Aunque en cada caso puede estar en un lugar. Lo único “obligatorio” es que esté dentro del bucle foreach que se ha abierto en la línea 14 (y que acaba en la 21).

Tenéis que tener en cuenta que donde pone wp_users hay que poner el nombre de la tabla de usuarios. Es decir: el_prefijo_que_pusisteis_al_instalar_wordpress_users.

Después del query viene la condición, que comparará el ID del usuario con el ID que elijamos nosotros, en mi caso usaré el ID 2:

if($autor['0']->ID == 2) {

Después añadimos el código que mostrará la imagen:

echo '<p><img src="admin.png" /></p>';

Tened en cuenta que la imagen debe estar en la raíz del blog, ya que la cargará desde la raíz.

Después cerramos la condición:

}

Para más de un administrador

Problablemente os preguntéis: ¿Y si tengo más de un usuario administrador?

Tenemos dos opciones:

  • Usando un elseif
  • Usando un switch

Yo prefiero el switch, así que explicaré esa.

En el paso donde añadíamos

if($autor['0']->ID == 2) {

En lugar de esto añadimos esto otro:

switch($autor['0']->ID) {
case 2:
echo '<p><img src="admin.png" /></p>';
break;
}

¿Cómo se personaliza? Fácil, donde yo he puesto case 2 vosotros debéis poner case ID_del_usuario_administrador. Para poner más de un administrador se repite el código desde el case hasta el break; .

Un ejemplo, con administradores con ID 2 y 7:


switch($autor['0']->ID) {
case 2:
echo '<p><img src="admin.png" /></p>';
break;
case 7:
echo '<p><img src="admin.png" /></p>';
break;
}

No es complicado ampliarla para más administradores.

Descarga

Como siempre, os dejo el theme classic modificado y la imagen admin.png listos para descargar aquí.

3 Responses to Diferenciar comentarios del administrador

Disculpadme, he escrito mal parte del tutorial (fragmentos de código).
Se ve que al hacer la imagen copié código que no era y al releer el tutorial advertí el error.
Ya está corregido, disculpadme de nuevo 🙂

Leave a Reply