Como faço para escapar de um ']' em um código curto?

13

Como faço para escapar de um colchete direito em um código curto?

Estou trabalhando em um plug-in do Google Map que possui pontos codificados. Às vezes, os polígonos possuem o] nele, o que faz com que o WP pense que é o fim do shortcode.

Por exemplo:

[my_shortcode latitude='36.93'  longitude='-72.98' encoded_points='ortlF~g]tM?cZEH'z]}|@DQfi]' ]

Já experimentei o ] , o que não está causando problemas para o WP, mas está causando um problema no meu código de mapa do Google. Eu poderia usar o Regex para substituir], mas talvez haja uma maneira mais simples. O shortcode tem um caractere de escape?

    
por Laxmidi 17.11.2011 / 06:18

5 respostas

15

Eu não sei de uma sintaxe de escape oficial para códigos de acesso e provavelmente não há uma.

Quando o wordpress analisa códigos de acesso, ele procura [ e ] . Se você quiser usar colchetes dentro de um shortcode, use as respectivas entidades ASCII html para que elas escapem.

Ou seja. substituindo [ por [ e ] por ] . O Wordpress não reconhecerá ] como o final do shortcode.

Se isso atende à sua finalidade, obviamente, depende se ele é convertido em ] antes de ser passado para a API do Google Maps ou se a API trata isso como esperado. Eu não tenho experiência com isso, então não posso dizer.

    
por Johannes Pille 17.11.2011 / 09:03
2

Com base na resposta de Johannes Pille, há a função wp para escapar dos colchetes para usar texto nos parâmetros de shortcode:

function my_esc_brackets($text = ''){
    return str_replace( [ "[" , "]" ] , [ "[" , "]" ] , $text );
}

Geralmente, as pessoas sugerem o uso do conteúdo $ do shortcode para parâmetros de texto, mas há casos em que o shortcode tem muitos desses parâmetros de texto.

    
por DocSS 11.03.2017 / 16:23
1

Parece haver uma página oficial aqui: Escapando códigos de acesso

Extrair:

  

Para fazer isso, você precisa escapar do shortcode usando dois conjuntos de   colchetes em vez de apenas um. Então, para exibir isso no seu post:

     

[galeria]

     

Você escreveria isto:

     

[[galeria]]

    
por Guillaume Husta 20.11.2018 / 17:09
0

Mesmo que você NÃO esteja jogando com url, use urldecode (seu attribute_value) com% 5B e% 5D usado como substituto para [e] em seu attribute_value.

Seu código pode ficar assim:

Na sua página wp: [my_shortcode myattr="%5Bmyattribute_value%5D"]

Em seguida, na sua função de código de acesso, faça o seguinte:

 $origvalue=urldecode($atts['myattr']);

Isso restaurará os caracteres [e] no $ origvalue, de modo que $ origvalue agora contenha: [myattribute_value]

DICA: Se você estiver jogando com url, faça o mesmo, mas adicione o seguinte ao código de função:

$urlvalue = urlencode($origvalue);

Se isso não estiver claro: SIM, estou fazendo urlencode (urldecode (algum valor de $ atts)) para criar uma parte correta de um URL.

Muito simples, espero que isso ajude.

Pierre

    
por Pierre13fr 26.12.2017 / 13:25
-1

Esta é uma pergunta antiga, mas aqui está uma solução alternativa usando css. No lugar das chaves, coloque os caracteres em uma extensão, da seguinte forma:

<span class="bracket">some string</span>

depois, adicione isso à folha de estilo do tema:

span.bracket:before {
  content: '['
}
.colored-blocks span.bracket:after {
  content: ']'
}

o resultado será assim:

[some string]

    
por yitwail 21.09.2014 / 04:07

Tags