El mensaje Disculpas, no está permitido publicar en este sitio aparece cuando el sistema de control de accesos de WordPress detecta una discrepancia entre las capacidades asignadas a tu cuenta y los permisos requeridos para la acción. Este fallo impide guardar borradores, crear o modificar entradas y páginas, incluso aunque tu usuario sea Administrador. En la mayoría de los casos, la causa radica en un desajuste del prefijo de las tablas en la base de datos, modificaciones erróneas en los roles de usuario o interferencias generadas por plugins de seguridad.
Qué significa el error
Este mensaje es un aviso de seguridad nativo de WordPress. Se activa cuando la función interna current_user_can() devuelve un valor falso al verificar si la cuenta actual posee la capacidad necesaria (como edit_posts o publish_posts). Afecta principalmente a editores y administradores al interactuar con el editor de bloques (Gutenberg) o el editor clásico, bloqueando cualquier solicitud de guardado de contenido.
Causas más habituales
- Prefijo de tablas incorrecto en wp-config.php: Ocurre tras una migración si la variable
$table_prefixno coincide con el prefijo real de la base de datos. - Corrupción de roles en la base de datos: La opción
wp_user_roles(o su equivalente con prefijo personalizado) en la tablawp_optionsse ha alterado o borrado. - Desajuste en la tabla usermeta: Las claves
wp_capabilitiesywp_user_leveldel usuario no tienen el mismo prefijo que la base de datos actual. - Bloqueo por plugins de seguridad o caché: Módulos como iThemes Security, Wordfence o complementos de asignación de roles bloquean la petición AJAX al guardar.
- Incompatibilidades tras actualizaciones: Inconsistencias temporales en el núcleo o plugins tras un proceso de actualización incompleto. Si experimentas otros fallos tras actualizar, revisa cómo resolver el error de actualización en WordPress.
Antes de empezar
Dado que realizarás cambios directos en la configuración y la base de datos de tu sitio web, es imprescindible tomar medidas preventivas:
- Genera una copia de seguridad completa de la base de datos y de los archivos mediante el panel de tu hosting (cPanel, Plesk) o phpMyAdmin.
- Asegúrate de contar con acceso SFTP/FTP o gestor de archivos en el panel de control de tu alojamiento.
- Consigue acceso con permisos de administrador a phpMyAdmin o a la herramienta de gestión de MySQL de tu servidor.
Solución 1: Verificar el prefijo de tablas en wp-config.php
Si has cambiado de hosting o migrado tu base de datos, es muy común que el prefijo definido en el archivo de configuración no coincida con los datos almacenados en MySQL.
- Accede a tu servidor mediante FTP o el administrador de archivos de tu hosting.
- Localiza el archivo
wp-config.phpen la raíz de tu instalación de WordPress. - Abre el archivo y busca la línea que define el prefijo de las tablas:
$table_prefix = 'wp_'; - Abre phpMyAdmin en el panel de tu hosting y selecciona tu base de datos.
- Comprueba el nombre real de tus tablas (por ejemplo,
wp_a1b2_optionsowp_options). - Si el prefijo de phpMyAdmin difiere del archivo, modifica la línea en
wp-config.phppara que coincida exactamente con el prefijo de tu base de datos. - Guarda los cambios y vuelve a probar la publicación de contenido.
Por qué funciona: WordPress busca las opciones de configuración y capacidades del usuario basándose en este prefijo. Si no coinciden, el sistema asume que el usuario no tiene permisos configurados en la instalación actual.
Solución 2: Corregir los registros usermeta en la base de datos
Incluso si el prefijo en wp-config.php es correcto, los campos de permisos individuales de la tabla wp_usermeta pueden conservar prefijos antiguos tras una migración.
- Accede a phpMyAdmin y selecciona la base de datos de tu sitio web.
- Haz clic en la pestaña SQL para ejecutar una consulta manual.
- Si tu prefijo actual es
wp_y el anterior era distinto (por ejemplo,wp_old_), ejecuta la siguiente consulta para localizar las claves desalineadas:SELECT * FROM wp_usermeta WHERE meta_key LIKE '%capabilities%' OR meta_key LIKE '%user_level%'; - Revisa los resultados. Las claves deben llamarse exactamente
wp_capabilitiesywp_user_level(sustituyendowp_por tu prefijo actual si es diferente). - Para corregir los nombres de las claves de forma masiva, ejecuta estas consultas actualizando los valores según tu prefijo real:
UPDATE wp_usermeta SET meta_key = 'wp_capabilities' WHERE meta_key = 'wp_old_capabilities'; UPDATE wp_usermeta SET meta_key = 'wp_user_level' WHERE meta_key = 'wp_old_user_level'; - Cierra la sesión en la administración de WordPress y vuelve a iniciarla para refrescar los permisos de tu perfil.
Por qué funciona: Los roles de cada usuario se leen directamente desde la tabla usermeta filtrando por la clave del prefijo actual. Si la clave tiene un nombre distinto, WordPress considera que tu usuario no tiene ningún rol asignado.
Solución 3: Desactivar plugins de seguridad y roles
Los plugins diseñados para modificar capacidades de usuario o fortificar la seguridad pueden generar falsos positivos al interceptar la API REST o las llamadas AJAX al publicar.
- Conéctate a tu servidor web utilizando tu cliente FTP.
- Navega hasta la carpeta
/wp-content/. - Localiza el directorio
pluginsy renombralo temporalmente comoplugins_old. - Inicia sesión en el panel de WordPress. Esto desactivará automáticamente todos los plugins instalados.
- Comprueba si puedes crear o editar una entrada sin que aparezca el error.
- Si el problema se resuelve, vuelve a nombrar la carpeta a
plugins, entra en la sección Plugins de WordPress y activa cada uno progresivamente hasta identificar al causante.
Por qué funciona: Si un plugin introduce reglas estrictas de cabeceras o modifica el vector de capacidades del usuario dinámicamente, al desactivarlo se restauran las comprobaciones nativas de WordPress.
Solución 4: Reparar la opción de roles globales en wp_options
Si la entrada donde se guardan las definiciones de roles predeterminados de WordPress se ha dañado, ningún perfil podrá realizar acciones dentro del panel.
- Accede a phpMyAdmin y entra en la tabla
wp_options(utiliza tu prefijo correspondiente). - En la columna
option_name, busca el registro denominadowp_user_roles. - Si no existe o si su valor en
option_valueaparece como vacío o superado por código corrupto, debes restaurarlo. - Si dispones de una copia de seguridad o de una instalación limpia con la misma versión de WordPress, exporta la fila
wp_user_rolese impórtala en esta base de datos. - Como alternativa rápida, puedes redefinir los roles utilizando la herramienta WP-CLI en tu servidor ejecutando el comando:
wp role reset administrator
Por qué funciona: Restablecer la entrada de roles en la base de datos vuelve a mapear las capacidades por defecto (como editar y publicar) a cada uno de los niveles de usuario del sistema.
Cómo comprobar que se ha solucionado
Para verificar que el sistema funciona correctamente, sigue estos pasos:
- Accede a tu panel de administración e ve a Entradas > Añadir nueva.
- Escribe un título y contenido de prueba en el editor.
- Haz clic en Guardar borrador y verifica que la acción finalice sin alertas.
- Haz clic en el botón Publicar. Si la entrada se publica con éxito y la interfaz muestra la confirmación habitual, el problema ha quedado resuelto.
Si nada de lo anterior funciona
Si el error persiste tras aplicar estas soluciones, el fallo puede estar relacionado con bloqueos a nivel de servidor o problemas graves en el núcleo:
- Revisión de logs: Consulta el archivo
error_logen la raíz de tu servidor o activa el depurador de WordPress enwp-config.phpañadiendo:
Revisa el archivodefine( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true );/wp-content/debug.logpara identificar llamadas denegadas. - Fuegos de red o WAF: ModSecurity o el cortafuegos de tu alojamiento pueden estar bloqueando las peticiones POST enviadas por el editor. Contacta con el soporte de tu proveedor de hosting para solicitar la revisión de las reglas del WAF.
- Fallo estructural mayor: Si la base de datos ha sufrido una corrupción severa, puede ser necesario reparar otras incidencias graves. En estos escenarios, consulta nuestras guías para solucionar problemas técnicos en WordPress o analiza si se trata de un error crítico del sitio.
Preguntas frecuentes
¿Por qué sucede este error si soy el usuario Administrador?
Ocurre porque las verificaciones de seguridad de WordPress no comprueban el nombre del rol directamente, sino sus capacidades (como publish_posts). Si la relación de tablas o claves en la base de datos no coincide con el prefijo actual, el sistema no detecta esas capacidades asociadas a tu cuenta.
¿Puedo perder mis publicaciones al modificar la base de datos?
Las modificaciones tratadas en este tutorial afectan únicamente a las tablas de configuración y metadatos de usuario (wp_options y wp_usermeta). Las entradas y páginas están almacenadas en wp_posts, por lo que no se borrarán. No obstante, realizar una copia de seguridad previa es siempre obligatorio.
¿Afecta este problema al editor clásico o solo a Gutenberg?
Afecta a ambos editores. Aunque la forma de comunicar el error puede variar ligeramente (Gutenberg muestra un aviso de fallo en la API REST y el editor clásico deniega la acción al procesar la solicitud POST), la causa subyacente de falta de permisos es idéntica.
¿Qué hago si no puedo acceder a phpMyAdmin?
Si no tienes phpMyAdmin, puedes utilizar el administrador de archivos de tu hosting para editar wp-config.php, o conectar mediante SSH para interactuar con la base de datos mediante comandos MySQL o la herramienta WP-CLI.