iframe y embed en WordPress Multisitio

imagen de red wordpress multisitio

imagen de red wordpress multisitio

Si tienes una instalación de WordPress Multisitio ya estarás disfrutando de sus posibilidades, pero debes saber que tiene sus pegas, cómo por ejemplo que tiene algunas restricciones de seguridad, al estilo de lo que pasa en WordPress.com, que, por ejemplo, impiden que los usuarios normales (todo el que no sea Administrador de la Red) puedan insertar códigos en las entradas, me refiero a embeds e iframes.

Afortunadamente se puede solucionar …

Esto pasa porque el uso de scripts en las entradas es un riesgo potencial de seguridad, porque cualquier usuario podría insertar código malicioso en entradas y comprometer toda la red del WordPress Multisitio. Esto, que en un WordPress unitario no es problema normalmente, en Multisitio, donde se permite crear blogs a casi cualquiera puede ser un asunto crítico, de ahí la restricción.

En definitiva, lo que pasa es que si usas un código embed o iframe (y casi cualquier script) en el editor de texto (HTML) al guardar la entrada desaparece, con lo que no mostrará nada.

¿Soluciones?

Pues ya hemos visto en el pasado cómo hacerlo a la brava, pero vaya, vamos a repasar las distintas posibilidades:

  1. Usar plugins para permitir insertar vídeo en WordPress Multisitio. No es la mejor opción, porque en ocasiones requiere de usar shortodes y muchos de ellos solo sirven para vídeo, así que servicios cómo issuu.com o similares quedarían fuera. En el artículo que te enlazo tienes varios posibles.
  2. Otra posibilidad es editar el fichero kses.php situado en la carpeta wp-includes. En la línea 50 más o menos encontrarás unas líneas que ponen esto:
    	/**
    	 * Kses global for default allowable HTML tags.
    	 *
    	 * Can be override by using CUSTOM_TAGS constant.
    	 *
    	 * @global array $allowedposttags
    	 * @since 2.0.0
    	 */
    	$allowedposttags = array(
    		'address' => array(),
    		'a' => array(
    			'href' => true,
    			'rel' => true,
    			'rev' => true,
    			'name' => true,
    			'target' => true,
    		),

    En estas líneas y las siguientes están las tags HTML permitidas por defecto en WordPress, que puedes borrar, para desactivarlas, o añadir nuevas. Pues bien, en este caso la idea sería añadir unas nuevas al final de la lista existente, que serían estas:

    'embed' => array (
        'style' => array (),
        'type' => array (),
        'id' => array (),
        'height' => array (),
        'width' => array (),
        'src' => array ()),
    'object' => array (
        'height' => array (),
        'width' => array ()),
        'param' => array (
        'name' => array (),
        'value' => array ()),
        'object' => array(
        'width' => array (),
        'height' => array (),
        'movie' => array (),
        'allowFullScreen' => array (),
        'embed src' => array(),
    'iframe' => array (
        'height' => array (),
        'width' => array ()),
        'param' => array (
        'name' => array (),
        'value' => array ()),
        'frameborder' => array (),
        'allowFullScreen' => array (),
        'application/x-shockwave-flash' => array()),

    Pero no, esta opción no es recomendable, porque ya sabes que nunca hay que modificar ficheros «core« porque se perderían al actualizar.

  3. También podemos, mucho más recomendable, crear un plugin WordPress con un código que se salte la restricción, o si lo prefieres crear un plugin de funciones y le añades el código, que sería así:
    //Permite insertar embeds e iframes en Multisitio
    $allowedposttags["iframe"] = array(
     "src" => array(),
     "height" => array(),
     "width" => array()
    );
    $allowedposttags["object"] = array(
     "height" => array(),
     "width" => array()
    );
    $allowedposttags["param"] = array(
     "name" => array(),
     "value" => array()
    );
    $allowedposttags["embed"] = array(
     "src" => array(),
     "type" => array(),
     "allowfullscreen" => array(),
     "allowscriptaccess" => array(),
     "height" => array(),
     "width" => array()
    );

    Es una solución más limpia y elegante.

Cómo ves, posibilidades de solucionarlo hay, ahora bien, recuerda que con este tipo de cosas estás abriendo tu red multisitio a una posible vulnerabilidad al permitir scripts, así que úsalo con responsabilidad.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(5 votos, promedio: 4.8)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

6 comentarios en “iframe y embed en WordPress Multisitio”

  1. Buenas tardes, me pueden decir si este código se puede poner en wordpress para evitar que otras web coloquen iframe en la mía, lo que quiero evitar que mis visitas se vayan para otro lado, porque ya lo han hecho tres veces, lo que pasa es que no sabía cómo lo hacían.

    function
    verifica(){
    if(top.location!=document.location)top.location=document.location;
    }

    Encontré esto en otra web que dicen que sirve, ahora, En que parte puedo poner esto, header.php funtion.php o dónde? Porque ya lo he intentado y me da un error.

    Y de paso si me pueden decir cómo puedo eliminar url de artículos que están duplicados porque no encuentro la carpeta dónde se alojan todos los artículos que se publican, el caso es que no se duplica el contenido si no la imagen, es decir, la ruta es http://misitio.com/la-depresion/ y la que se duplica es http://misitio.com/la-depresion/la-depresion/ se dan cuenta como se repite el título de mi artículo solo que no sale el contenido sí no solo la imagen para que tengan una mejor idea ahí les va http://rsanahuano.com/problemas-familiares/problemas-familiares/

    se van a dar cuenta que ahí tengo una frase avisando que si no ven el contenido hagan clik en el nombre con rojo abajo pero, el caso es que para google eso es duplicado ¿Se puede arreglar esto? Ya me sancionaron un vez y tuve que eliminar toda la web y la instalé de nuevo pero el mal apareció después. Por favor que hago?

  2. Hola,
    ¿Y algo más sencillo para los que no sabemos picar código?

    Yo estoy intentando poner formularios para vender entradas a un evento y es imposible.

    SAludos

    1. Javier, para los que no sabéis picar código, simplemente instala y activa este plugin que acabo de subir en el GitHub.

      https://github.com/dballari/allow-multisite-iframes-embeds

      – Primero, dale al botón Download ZIP.
      – Después, descomprime el zip y ponlo en la carpeta wp-content/plugins y
      – Finalmente activa el plugin.

      Si no lo sabes hacer, simplemente píde ayuda a un programador y cualquier persona que sepa programar en WordPress lo podrá hacer.

      Saludos,

      David

  3. Ivanis Mirabal

    Buena a todos los subcritos tengo una duda y es q soy cubano pertenesco a una red local de mi municipio y soy admin y queiro q en mi blog se publiquen videos desde los comentarios ya probe todas las alternativas y me sigue diciendo no se admite este complemento q es ??? saludos de ante manos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido