Corrigir erro do plugin Sniplet no wordpress 3.xx

Desde que a versão do wordpress 3.3 saiu que o plugin sniplet deixou de funcionar a 100%. 

Um dos erros mais aborrecidos é não deixar utilizar o media upload na área de edição e criação de posts, e como o plugin não irá ter mais actualizações tudo indica que o erro não será corrigido.

 

O Sniplet é um plugin para o wordpress que permite criar uma porção de código ou texto e registá-lo como sniplet, depois basta usar o nome para este ser inserido em posts ou páginas. 

É útil quando temos de repetir certos textos em vários posts.

Por exemplo, temos de colocar em vários posts ou páginas a seguinte frase  “Todos os valores já têm iva incluído à taxa de 23%.”, regista-se a frase como sniplet com o nome “iva-incluido” e depois bastaria colocar [sniplet iva-incluido] em cada post ou página que queremos mostrar a frase.

 

Qualquer alteração no texto é feita directamente no sniplet, alterando de imediato em todos os posts.

 

Esta pequena introdução é desnecessária para quem conhece e usa o plugin e é para esses que esta solução dará jeito.

Como utilizador deste plugin em vários sites, e que em cada site posso ter mais de 30 sniplets, foi urgente arranjar uma solução.

 

A solução que arranjei foi criar uma rotina que irá usar a base de dados dos sniplet já feitos e os atalhos nos posts. 

O código intercepta os shortcodes sniplet inscritos nas páginas ou posts e faz o que o plugin faz nesta situação, insere o código.

 

Este código é adicionado ao ficheiro “functions.php” do seu tema. 

Tenha em atenção que deve desactivar o plugin “Sniplet” e não eliminar, se eliminar ou desinstalar o plugin todos os seus sniplets serão eliminados.

				
					add_shortcode("sniplet", "GetSniplet");

function GetSniplet($atts)
{
    global $wpdb;
    $snipplet_name = $atts[0];
    $texto_html = $wpdb->get_row(
        "SELECT * FROM {$wpdb->prefix}sniplets WHERE name=\"$snipplet_name\""
    );
    $conteudo = $texto_html->contents;
    return $conteudo;
}
				
			
 

Este código vem sem nenhuma garantia, a escolha é sua se o vai utilizar ou não. Não tem qualquer controle de erro.

No meu caso funciona a 100%.