Tutorial WordPress: Estilizar los enlaces “Editar” visibles para editores con CSS

·

·

Introducción

Este artículo explica con todo lujo de detalles cómo estilizar los enlaces «Editar» que aparecen en el front-end de WordPress para usuarios con permisos de edición. Verás qué selectores suelen usar los temas y WordPress, cómo dirigirte únicamente a usuarios con permisos (o a un rol concreto), ejemplos prácticos de CSS —incluyendo variantes: discreto inline, botón flotante, visible solo al pasar el ratón— y buenas prácticas de accesibilidad y rendimiento.

¿De dónde sale el enlace «Editar»?

WordPress genera el enlace mediante la función edit_post_link() o mediante la barra de administración (admin bar) cuando el usuario está conectado y tiene la capacidad de editar la entrada. El HTML típico que genera el tema o WordPress suele ser un enlace con clases como post-edit-link o edit-link. La barra superior de administración usa un identificador como #wp-admin-bar-edit.

Selectores comunes que puedes usar

Limitaciones puramente con CSS

El CSS, por sí solo, no conoce el rol del usuario (editor, autor, administrador). WordPress añade la clase logged-in al elemento body cuando el usuario está conectado y añade admin-bar cuando la barra de administración está activa. Con esto puedes aplicar estilos solo para usuarios conectados para dirigirte específicamente a editores necesitarás añadir una clase de rol al body desde PHP (se muestra más abajo).

Cómo apuntar a los enlaces «Editar» con CSS

Ejemplo básico — estilo inline discreto

Este ejemplo cambia color, tamaño y añade una transición suave a la clase más habitual.

.post-edit-link,
.edit-link {
  display: inline-block
  margin-left: .5rem
  color: #0a66c2
  background: rgba(10,102,194,0.06)
  padding: .25rem .5rem
  border-radius: 4px
  font-size: .9rem
  text-decoration: none
  transition: background .18s ease, color .18s ease, transform .12s ease
}
.post-edit-link:hover,
.edit-link:hover,
.post-edit-link:focus,
.edit-link:focus {
  background: rgba(10,102,194,0.12)
  color: #063a7a
  transform: translateY(-1px)
  outline: none
  box-shadow: 0 0 0 3px rgba(10,102,194,0.08)
}

Ejemplo — botón flotante (fijo en la esquina) visible para editores / usuarios con admin-bar

Un diseño útil para editores que necesitan acceso rápido. Si prefieres limitarlo solo a usuarios conectados con admin bar, usa el selector .logged-in .admin-bar .post-edit-link o añade la clase por rol (ver abajo).

/ Botón flotante: usar con cuidado para móviles (ocultar en pantallas pequeñas) /
.post-edit-link.floating-edit {
  position: fixed
  right: 1rem
  bottom: 1rem
  z-index: 99999
  background: #ffb300
  color: #0b0b0b
  padding: .6rem .85rem
  border-radius: .5rem
  box-shadow: 0 6px 18px rgba(11,11,11,0.18)
  font-weight: 600
  text-decoration: none
  display: inline-flex
  align-items: center
  gap: .5rem
}
/ ocultar en móviles si es necesario /
@media (max-width: 768px) {
  .post-edit-link.floating-edit { display: none }
}

Ejemplo — Mostrar solo al pasar el ratón (hover) sobre el artículo

Para mantener el HTML limpio y mostrar el enlace únicamente cuando el usuario apunta a la entrada, usa el selector que corresponda al contenedor del post (aquí usamos un ejemplo genérico .post).

.post .post-edit-link {
  opacity: 0
  transform: translateY(-4px)
  transition: opacity .15s ease, transform .15s ease
  pointer-events: none
}
.post:hover .post-edit-link,
.post:focus-within .post-edit-link {
  opacity: 1
  transform: translateY(0)
  pointer-events: auto
}

Ejemplo — icono antes del texto (sin dependencias externas)

.post-edit-link::before {
  content: ✎ / lápiz unicode /
  display: inline-block
  margin-right: .35rem
  font-size: .95em
  vertical-align: text-bottom
}

Estilizar el enlace de la admin bar

/ selector para la entrada de editar en la barra de administración /
#wp-admin-bar-edit > a {
  background: #111827
  color: #ffffff
  border-radius: 4px
  padding: 6px 10px
  text-decoration: none
}
#wp-admin-bar-edit > a:hover,
#wp-admin-bar-edit > a:focus {
  background: #0b1220
}

Dirigir el estilo a un rol concreto: añadir una clase de rol al body (PHP)

Si necesitas que los estilos solo afecten a usuarios con el rol editor, añade una clase al array de clases del body usando un filtro en functions.php del tema hijo o en un plugin específico del sitio. Ejemplo seguro y minimalista:

/
  Añadir clase role-editor al body si el usuario actual tiene el rol editor
 /
function mi_agregar_clase_rol_body( classes ) {
    if ( ! is_user_logged_in() ) {
        return classes
    }
    user = wp_get_current_user()
    if ( in_array( editor, (array) user->roles, true ) ) {
        classes[] = role-editor
    }
    return classes
}
add_filter( body_class, mi_agregar_clase_rol_body )

Una vez añadida la clase role-editor, puedes apuntar con CSS exclusivamente a editores:

.role-editor .post-edit-link {
  / estilos exclusivos para editores /
  background: #0a66c2
  color: #fff
}

Si necesitas modificar el HTML del enlace para accesibilidad o clases adicionales

WordPress permite usar edit_post_link() con parámetros para añadir antes/after o clase también puedes generar el enlace manualmente si necesitas atributos ARIA concretos:

if ( current_user_can( edit_post, get_the_ID() ) ) {
    edit_url = get_edit_post_link( get_the_ID() )
    echo Editar
}

Buenas prácticas y accesibilidad

Dónde colocar el CSS y el PHP

  1. CSS sencillo: Apariencia → Personalizar → CSS adicional (rápido y seguro).
  2. Para cambios permanentes y que se versionen: añade el CSS al style.css de tu tema hijo o crea un archivo CSS y enquéalo con wp_enqueue_style.
  3. El código PHP (filtro body_class o output personalizado del enlace) debe ir en el functions.php del tema hijo o en un plugin de funcionalidades del sitio.

Solución de problemas comunes

Resumen y recomendaciones finales

Para estilizar los enlaces «Editar» en WordPress la estrategia recomendable es:

  1. Identifica el selector que usa tu tema (.post-edit-link, .edit-link, etc.).
  2. Decide si basta con dirigirte a usuarios logged-in o si necesitas un control por rol (en cuyo caso añade una clase de rol al body vía PHP).
  3. Aplica estilos claros y accesibles añade focus visible y controla comportamiento responsive.
  4. Prueba con varios roles y dispositivos y usa el inspector para depurar especificidad y cascada de reglas.

Con los fragmentos anteriores podrás crear enlaces «Editar» visibles y usables para editores, manteniendo buenas prácticas de accesibilidad y compatibilidad con tu tema.



Leave a Reply

Your email address will not be published. Required fields are marked *