Problema com Hotwords e Syntaxhighlighter no blog WordPress

Rate this post

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 '<pre class="' . esc_attr( implode( ' ', $params ) ) . '">' . $code . '</pre>';

Substitua pelo seguinte código:

return '</div><pre class="' . esc_attr( implode( ' ', $params ) ) . '">' . $code . '</pre><div id="HOTWordsTxt"  name="HOTWordsTxt">';

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 uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *