Categorías: RecursosWordPress

Evitar el filtrado de código HTML en los usuarios de WordPress

Vamos a repasar en este post cómo evitar el filtrado de código HTML en WordPress y las diferentes causas por las que nos puede prohibir WordPress la inserción de código.

Casos en las que WordPress filtra código HTML

Hay 2 casos en los que se activa dicho filtrado, son las siguientes:

  • Inserción de código HTML por parte del usuario.
  • Durante la importación de contenido.

Usuarios con permisos para insertar código HTML

Veamos los usuarios de WordPress con permisos para insertar código HTML en las instalaciones standar y multisite:

  • Instalación standar: En una instalación normal/standar que es el 90% de los casos los usuarios que tienen este privilegio son el administrador y editor. Los autores y colaboradores no tienen privilegios para insertar HTML.
  • Instalación multisite: En este tipo de instalación solo puede insertar código HTML el superadmin. En este caso quedan fuera de este privilegio el admin, editor, autor y colaborador.

Por lo que hemos podido ver los solo usuarios con cierto ‘nivel’ pueden realizar esta acción.

Este filtrado puede causarnos problemas a la hora de actualizar nuestras webs ya que los usuarios sin privilegios dependen de terceros para poder completar sus post. Por ejemplo no podrían realizar cosas tan últiles como embeber vídeos de youtube y similares.

Soluciones al filtro de código HTML

Podemos solucionar de 2 maneras el filtrado:

  • Modificando la configuración de WP en el wp-config.php.
  • Mediante la instalación de plugins que nos permita insertar este tipo de código.
  • Añadiendo permisos a los diferentes usuarios/roles de WordPress.

Para eliminar el filtrado a través del wp-config.php debemos añadir la siguiente línea:

define( 'DISALLOW_UNFILTERED_HTML', false );

En instalaciones de WordPress MU (Multi User) quizás os funcione este otro código que suelo usar:

function remove_filters_users()
                {
                if (current_user_can('moderate_comments')) {
                               kses_remove_filters();
                               }
                }
add_action('init', 'remove_filters_users');
add_action('set_current_user', 'remove_filters_users');

Si optamos por la instalación de plugins que nos permitan embeber el código podemos probar con alguno de los siguientes:

  • Remove Kses: Plugin para añadir la capacidad de insetar código HTML a los diferentes roles de WordPress.
  • Advanced iframe: Potente plugin con numerosas opciones para integrar iframes.
  • Insert HTML Snippet: Interesante plugin para convertir a shortcodes el HTML insertado.
  • Embedly: Completo plugin para insertar toda clase de códigos para embeber contenido en los post. Existe la versión premium.
  • Code embed: Simple plugin para añadir HTML mediante shortcodes.

Por último si queremos solucionar el problema modificando los permisos de los usuarios de WordPress podemos hacerlo añadiendo esta línea.

$perfil = get_role('autor');
$perfil->add_cap('unfiltered_html');

Os aconsejo que antes de añadir el código superior, probéis este plugin que os puede servir igualmente:

En este caso estamos permitiendo que los autores puedan meter código HTML.

compartir
Publicado por
Aner Barrena