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
- .post-edit-link — clase común en el enlace generado por edit_post_link()
- .edit-link — otra clase habitual
- #wp-admin-bar-edit gt a — selector para el enlace de la admin bar
- .logged-in .edit-link o .admin-bar .edit-link — para limitar a usuarios con la barra de admin visible
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
- Mantén contraste suficiente entre texto y fondo para cumplir WCAG (contraste mínimo 4.5:1 para texto normal).
- Asegura foco visible: siempre define :focus (outline o box-shadow) para navegar con teclado.
- Evita ocultar el enlace a usuarios que lo necesitan si lo ocultas visualmente, proporciónalo mediante teclas o visible en focus-within.
- No abuses de !important. Úsalo solo cuando el tema obligue con reglas muy específicas.
- Si añades un botón flotante, considera ocultarlo en pantallas pequeñas o dar opción para desactivarlo.
Dónde colocar el CSS y el PHP
- CSS sencillo: Apariencia → Personalizar → CSS adicional (rápido y seguro).
- 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.
- 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
- Si tus estilos no se aplican: revisa con Inspector (DevTools) la clase exacta del enlace algunos temas usan nombres personalizados.
- Si la barra de administración no muestra tus estilos: comprueba la especificidad o que tu hoja se cargue después usa selectores concretos o en último caso !important.
- Si no ves el enlace «Editar»: asegúrate de estar conectado con un usuario que tenga permisos de edición y que el tema llame a edit_post_link() en la plantilla.
Resumen y recomendaciones finales
Para estilizar los enlaces «Editar» en WordPress la estrategia recomendable es:
- Identifica el selector que usa tu tema (.post-edit-link, .edit-link, etc.).
- 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).
- Aplica estilos claros y accesibles añade focus visible y controla comportamiento responsive.
- 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