Você está aqui: Home / wordpress / problema com hotwords e syntaxhighlighter no blog wordpress.html

Problema com Hotwords e Syntaxhighlighter no blog WordPress

     

Quem utiliza o Hotwords em seu blog e resolve utilizar o Syntaxhighlighter, ou o contrário, quem utiliza o Syntaxhighlighter e começa a usar também o Hotwords, vai enfrentar um probleminha em ambos, sabe por quê? Porque o Hotwords irá inserir links em palavras contidas dentro do código no Syntaxhighlighter e isso fará com que o código não seja exibido corretamente e também com que o link do hotwords não funcione.

Para entender melhor do que estou falando, veja como fica a estrutura do post com hotwords e syntaxhighlighter ativos:

<div id="HOTWordsTxt" name="HOTWordsTxt">

 Texto do post normal aqui

 <pre>
 Código que será formatado pelo Syntaxhighlighter
 </pre>

 Texto do post normal aqui

 <pre>
 Código que será formatado pelo Syntaxhighlighter
 </pre>

</div>

Como podes notar, tudo que estiver dentro do div id=”HOTWordsTxt” name=”HOTWordsTxt” será texto potencial para o sistema do Hotwords, inclusive textos dentro da tag pre do syntaxhiglighter. Quando me deparei com esse problema eu procurei alguma espécie de filtro para o hotwords, algo tipo um controle onde você pudesse informar o ID de algum objeto para que o hotwords não inserisse links dentro, isso seria uma boa idéia e inclusive eu sugeri isso para eles, mas o fato é que até o momento que criei esse artigo, não existia nenhum filtro nesse sentido. E agora? Calme, não é o fim do mundo, não antes de dezembro de 2012, rs.

Bom, a solução para esse problema é você fechar o div do hotwords antes de iniciar a tag pre do sintaxhighlighter, e após fechar a tag do sintaxhighlighter você deve reabrir o div com o identificador do Hotwords, o código ficaria mais ou menos assim:

<div id="HOTWordsTxt">

 Texto do post normal aqui</div>

<pre>        Código que será formatado pelo Syntaxhighlighter
</pre>

<div id="HOTWordsTxt">
Texto do post normal aqui

</div>
<pre>        Código que será formatado pelo Syntaxhighlighter
</pre>

<div id="HOTWordsTxt"></div>

Com isso, o bloco de código do Sintaxhighlighter não estaria mais ao alcance do Hotwords e nosso problema estaria resolvido, mas como implementar isso no blog wordpress? Bem, é muito simples, você precisa apenas editar o plugin do Syntaxhighlighter, veja como proceder abaixo:

1- Abra o arquivo sintaxhighlighter.php, que deveria estar dentro da pasta do plugin, em seu editor de paginas web, sugiro o DreamWeaver.
2- Na linha 1705, você vai encontrar um código como esse:

return '&lt;pre class=&quot;' . esc_attr( implode( ' ', $params ) ) . '&quot;&gt;' . $code . '&lt;/pre&gt;';

Substitua pelo seguinte código:

return '&lt;/div&gt;&lt;pre class=&quot;' . esc_attr( implode( ' ', $params ) ) . '&quot;&gt;' . $code . '&lt;/pre&gt;&lt;div id=&quot;HOTWordsTxt&quot;  name=&quot;HOTWordsTxt&quot;&gt;';

3- Salve o arquivo e envie para o servidor remoto.

O que fizemos aqui foi simplesmente fechar o div do hotwords antes de iniciar o syntaxhighlighter e após ele abrir o div do Hotwords novamente, simples, não?

Agora você já pode utilizar o Syntaxhighlighter junto com o HotWords em seu blog WordPress sem erros, sem incompatibilidade e sem medo, rs.

Pessoal, por hoje é isso, até outro dia.

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>