¿Cómo escapo un paréntesis derecho en un código corto?
Estoy trabajando en un complemento de Google Map que tiene puntos codificados. A veces los polígonos tienen el], lo que hace que WP piense que es el final del shortcode.
Por ejemplo:
[my_shortcode latitude='36.93' longitude='-72.98' encoded_points='ortlF~g]tM?cZEH`z]}|@DQfi]' ]
He intentado lo ]
que no está causando un problema para WP, pero está causando un problema para mi código de mapa de Google. Podría usar Regex para reemplazar], pero tal vez haya una forma más simple. ¿Shortcode tiene un carácter de escape?
str_replace()
debería hacer el trabajo también. Sería menos intensivo en recursos, si lo hiciera.Según la respuesta de Johannes Pille, hay una función wp para escapar de los corchetes para usar texto en parámetros de código corto:
A menudo, las personas sugieren usar el contenido $ de shortcode para parámetros de texto, pero hay casos en que el shortcode tiene muchos de estos parámetros de texto.
fuente
Parece que hay una página oficial aquí: Escaping Shortcodes
Extracto:
fuente
Incluso si NO está jugando con url, use urldecode (su atributo_valor) con% 5B y% 5D utilizados como reemplazo de [y] en su atributo_valor.
Su código puede verse así:
En tu página de wp:
[my_shortcode myattr="%5Bmyattribute_value%5D"]
Luego, en su función de shortcode, simplemente haga esto:
Esto restaurará los caracteres [y] en $ origvalue, de modo que $ origvalue ahora contiene:
[myattribute_value]
SUGERENCIA: si está jugando con url, haga lo mismo, pero agregue lo siguiente al código de función:
Si eso no está claro: SÍ, estoy haciendo urlencode (urldecode (algún valor de $ atts)) para construir una parte correcta de una url.
Muy simple, espero que esto ayude.
Pierre
fuente
Esta es una vieja pregunta, pero aquí hay una solución alternativa usando CSS. En lugar de llaves, encierre los caracteres en un espacio, así:
<span class="bracket">some string</span>
luego, agregue esto a la hoja de estilo del tema:
el resultado se verá así:
[some string]
fuente
]
como parte del contenido, no sobre cómo mostrarlo.