Categorias
Programação Wordpress

WordPress: como usar shortcodes na theme, em widgets ou nos artigos

O WordPress oferece uma forma simples, segura e bastante ‘clean’ (limpa ) de misturar pedaços códigos PHP dentro de artigos (‘posts’) ou páginas por meio da Shortcode API.

A Shortcode API (Application Programming Interface) está disponível desde a versão 2.5 e foi um grande ganho para os desenvolvedores de plugins e temas.

Para que possamos usar shortcodes no WordPress, devemos criar uma função no arquivo functions.php do tema ou através de um plugin. Depois devemos evocar a função registada no nosso artigo dentro de ‘[ ]’ (colchetes), o WordPress substituirá o shortcode pelo retorno da função. Exemplo:

WordPress: criando shortcodes

<?php
function fn_templates(){
   return get_bloginfo('template_url');
}
add_shortcode('templates','fn_templates');
?>

Chamamos o shortcode criado da seguinte forma:

[templates]

No próximo exemplo vamos criar um shortcode para inserir um mapa navegável, do Google Maps diretamente em nosso artigo. Vamos usar alguns parâmetros para refinar o mesmo. A função vai estar preparada para receber os parâmetros latitude/longitude, altura e largura do mapa.

function mapa($atributos) {
    extract(
    shortcode_atts(array(
    	'll'        => '-15.570624,-56.087179',
    	'altura'    => 300,
    	'largura'   => 300
    	), $atributos));
return '<iframe width="'.$largura.'" height="'.$altura.'" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/?ie=UTF8&ll='.$ll.'&spn=0.014469,0.018239&z=15&output=embed"></iframe>';
}
add_shortcode('Gmap', 'mapa');

A nossa função mapa receberá um parâmetro que equivale a um array com os valores vindos do post. Devemos então perceber que a primeira coisa que fazemos é tratar os parâmetros com as funções ‘extract’ e ‘shortcode_atts’.

A funções ‘extract’ é usada para converter as chaves de um array em nome de variável ($ll, $altura, $largura). A funções ‘shortcode_atts’ garante que os parâmetros não declarados no post terão um valor padrão, sendo assim, nenhum parâmetro é obrigatório.

Vamos chamar o shortcode com o nosso mapa no artigo para se entender mais facilmente. Para tal usaremos o seguinte:

[Gmap ll='41.156686,-8.623924']

O mapa vai aparecer no artigo com altura e largura de 300px, como não declaramos nenhum valor, será assumido o valor padrão. Já a latitude/longitude (ll) terá o valor que declaramos (-15.570624,-56.087179).

Podemos utilizar os shortcodes de varias formas, não só nos artigos como diretamente em qualquer arquivo do tema em uso, basta que utilizes o seguinte código onde quer que o mesmo apareça:

<?php echo do_shortcode("[Gmap ll='41.156686,-8.623924']"); ?>

Também podemos adicionar os shortcodes nas widgets do tipo ‘Texto’ da mesma forma que são utilizados nos artigos. Para tal, adicionamos no arquivo ‘functions.php’ do tema em uso o seguinte código :

add_filter('widget_text', 'do_shortcode');

Agora já pode utilizar shortcodes no WordPress facimente, tanto em widget, como em artigos ou em qualquer arquivo do tema em uso.

E você costuma usar shortcodes no WordPress? Conhecia esta forma? Comente!

Um abraço e até breve!



Um comentário a “WordPress: como usar shortcodes na theme, em widgets ou nos artigos”

Cara sera que voce consegue me ajudar a colocar um youtube player feito em javascript…
Estou usando um tema do WordPress que não consigo fazer esse plugin funcionar de jeito nenhum já tentei de tudo.

Bom o que quero fazer é o seguinte, o meu cliente tem um canal no youtube e ele quer fazer transmissões ao vivo.

O jeito que todos fazem é só chegar e colocar a url do youtube com o channel da pessoa…porém fazendo isso o evento AO VIVO não roda no site….

Então sei que este javascript do youtube funciona tudo certinho pois já usamos ele no antigo site deste cliente…

me ajude por favor. Para que o plugin funcione eu preciso transformar o chamador do plugin em forma de shortcode.

O tema que estou usando é o THE KEN TEMPLATE :
http://themeforest.net/item/the-ken-multipurpose-creative-wordpress-theme-/7281173

E O YOUTUBE JAVASCRIPT QUE ESTOU USANDO É ESTE :
http://jsfiddle.net/NmvA9/490/

Só colocar o script chamando ele na Head não está funcionando…não sei como fazer para que o player funcione.

obrigado

Deixe um comentário

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