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 '<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.






