• Resuelto profesorberkeley

    (@profesorberkeley)


    CONTEXTO. Trabajo con WordPress 4.7.5 y la funcionalidad nativa Insert shortcode.
    OBJETIVO. Tener un link que al darle clic se despliegue información oculta a modo de acordeón. La forma simple de hacerlo es así:

    • 1) Se inserta un shortcode tipo Accordion
    • 2) Lo cual pone el siguiente código:
    
    [su_accordion]
    	[su_spoiler title="Mi link"]
    		<h1>Contenido oculto</h1>
    	[/su_spoiler]
    [/su_accordion]

    Esto funciona perfectamente. Pero mi objetivo es ligeramente más complejo: la idea es que el link al cual se da clic para que se despliegue la info oculta, esté embebido dentro de una etiqueta HTML, por ejemplo una tabla:

    
    [su_accordion]
    	[su_spoiler title="
    		<table class='mi-clase-custom-1'>
    			<tbody>
    				<tr>
    					<td class='mi-clase-custom-2'>Mi link</td>
    				</tr>
    			</tbody>
    		</table>
    		"]
    	[/su_spoiler]
    [/su_accordion]

    Como pueden ver, mi-clase-custom-1 y mi-clase-custom-2 van en comillas simples. No pueden ir en comillas dobles porque WordPress se confundiría con las comillas dobles del acordeón.

    Ahora, esto también funciona perfectamente.

    PROBLEMA. El problema viene cuando, tiempo después, quiero editar este ítem de producto donde viene el shortcode. WordPress modifica automáticamente el shortcode, cambiando mis comillas simples por comillas dobles, lo cual evidentemente romple el shortcode, de tal forma que en el frontend ya no se ve el link.

    ¿Cómo evitar que WordPress cambie mis comillas simples por dobles?
    ¿O alguna otra idea de cómo solucionar esto?

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • Moderador almendron

    (@almendron)

    En realidad, no es que sustituya las simples por las dobles sino que TinyMCE corrige de forma automática el XHTML incorrectamente anidado.

    Si el enlace lo puedes poner, por ejemplo, al final del post, podrías entonces llamar a un archivo php externo modificando la plantilla. En ese archivo iría el código tal y como tú quieres puesto que ahí no interviene el editor.

    Iniciador del debate profesorberkeley

    (@profesorberkeley)

    Gracias por responder @almendron.
    Me cansé de manosear los archivos del TinyMCE intentando deshabilitar el filtro que corrige el HTML. No pude.

    Pero en mi búsqueda de una posible solución encontré este plugin: https://wordpress.org/plugins/raw-html/, que finalmente me ayudó en mi problema. Con este plugin cualquier HTML que ponga entre [raw] y [/raw] será puesto así como tal, crudamente (raw), sin ser modificado por nada ni por nadie.

    Saludos!

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • El debate ‘WordPress cambia comillas simples por dobles’ está cerrado a nuevas respuestas.