Os shortcodes do WordPress foram introduzidos aquando do lançamento da sua versão WP2.5. Estes códigos são uma forma muito simples de ‘puxar’ a informação que deseja, recorrendo a poucas linhas de código. Neste artigo, pretendemos mostrar-lhe através das dicas dos colegas do catswhocode, os 10 shortcodes mais incríveis para WordPress, que poderá começar a utilizar imediatamente no seu blog!
1- APRESENTAR ARTIGOS RELACIONADOS
Os artigos relacionados são uma forma muito eficiente de manter os seus leitores mais tempo no seu blog, ocupados com a visitação de novas páginas constantemente. Isso aumenta-lhe o número de páginas vistas gradualmente, ao mesmo tempo que aumenta o potencial de rendibilidade do seu blog. Existem dezenas de plugins para executar esta função, mas porque não utilizar um shortcode que o faça automaticamente?
function related_posts_shortcode( $atts ) {
extract(shortcode_atts(array(
‘limit’ => ’5′,
), $atts));global $wpdb, $post, $table_prefix;
if ($post->ID) {
$retval = ‘<ul>’;
// Get tags
$tags = wp_get_post_tags($post->ID);
$tagsarray = array();
foreach ($tags as $tag) {
$tagsarray[] = $tag->term_id;
}
$tagslist = implode(‘,’, $tagsarray);// Do the query
$q = “SELECT p.*, count(tr.object_id) as count
FROM $wpdb->term_taxonomy AS tt, $wpdb->term_relationships AS tr, $wpdb->posts AS p WHERE tt.taxonomy =’post_tag’ AND tt.term_taxonomy_id = tr.term_taxonomy_id AND tr.object_id = p.ID AND tt.term_id IN ($tagslist) AND p.ID != $post->ID
AND p.post_status = ‘publish’
AND p.post_date_gmt < NOW()
GROUP BY tr.object_id
ORDER BY count DESC, p.post_date_gmt DESC
LIMIT $limit;”;$related = $wpdb->get_results($q);
if ( $related ) {
foreach($related as $r) {
$retval .= ‘<li><a title=”‘.wptexturize($r->post_title).’” href=”‘.get_permalink($r->ID).’”>’.wptexturize($r->post_title).’</a></li>’;
}
} else {
$retval .= ‘
<li>Nenhum artigo relacionado encontrado</li>’;
}
$retval .= ‘</ul>’;
return $retval;
}
return;
}
add_shortcode(‘related_posts’, ‘related_posts_shortcode’);
Código de utilização:
[related_posts]
2- APRESENTAR UM GRÁFICO GOOGLE
A Google Chart API é provavelmente a ferramenta mais interessante da internet para apresentar gráficos dinâmicos em páginas e blogs. Aqui fica um shortcode para tornar essa utilização ainda mais simples no seu blog WordPress:
function chart_shortcode( $atts ) {
extract(shortcode_atts(array(
‘data’ => ”,
‘colors’ => ”,
‘size’ => ’400×200′,
‘bg’ => ‘ffffff’,
‘title’ => ”,
‘labels’ => ”,
‘advanced’ => ”,
‘type’ => ‘pie’
), $atts));switch ($type) {
case ‘line’ :
$charttype = ‘lc’; break;
case ‘xyline’ :
$charttype = ‘lxy’; break;
case ‘sparkline’ :
$charttype = ‘ls’; break;
case ‘meter’ :
$charttype = ‘gom’; break;
case ‘scatter’ :
$charttype = ‘s’; break;
case ‘venn’ :
$charttype = ‘v’; break;
case ‘pie’ :
$charttype = ‘p3′; break;
case ‘pie2d’ :
$charttype = ‘p’; break;
default :
$charttype = $type;
break;
}if ($title) $string .= ‘&chtt=’.$title.”;
if ($labels) $string .= ‘&chl=’.$labels.”;
if ($colors) $string .= ‘&chco=’.$colors.”;
$string .= ‘&chs=’.$size.”;
$string .= ‘&chd=t:’.$data.”;
$string .= ‘&chf=’.$bg.”;return ‘<img title=”‘.$title.’” src=”http://chart.apis.google.com/chart?cht=’.$charttype.”.$string.$advanced.’” alt=”‘.$title.’” />’;
}
add_shortcode(‘chart’, ‘chart_shortcode’);
Código de utilização:
[chart data="41.52,37.79,20.67,0.03" bg="F7F9FA" labels="Reffering+sites|Search+Engines|Direct+traffic|Other" colors="058DC7,50B432,ED561B,EDEF00" size="488x200" title="Traffic Sources" type="pie"]
3- INTEGRAR ANÚNCIOS ADSENSE
O Adsense é provavelmente a forma mais simples e eficaz de rentabilizar um website ou um blog. Utilizando widgets, é relativamente simples colocar anúncios Adsense no seu blog. No entanto, a melhor forma de rentabilizar um blog é seguramente utilizando Adsense dentro dos seus posts. Este processo torna-se extremamente simples e mágico, recorrendo aos shortcodes para WordPress. Vejamos:
function showads() {
return ‘<script type=”text/javascript”><!–
google_ad_client = “pub-3637220125174754″;
google_ad_slot = “4668915978″;
google_ad_width = 468;
google_ad_height = 60;
//–>
</script>
<script type=”text/javascript”
src=”http://pagead2.googlesyndication.com/pagead/show_ads.js”>
</script>
‘;
}add_shortcode(‘adsense’, ‘showads’);
Código de utilização:
[adsense]
4- MOSTRAR CONTEÚDO PRIVADO PARA ‘MEMBROS PREMIUM’
Cada vez mais os blog e blogueiros estão a adoptar os chamados ‘conteúdos premium’, onde determinados grupos de utilizadores têm de pagar para ter acesso a conteúdos privilegiados. Sabe como apresentar conteúdos premium para os seus ‘utilizadores premium’ apenas? Utilize este shortcode:
function access_check_shortcode( $attr, $content = null ) {
extract( shortcode_atts( array( ‘capability’ => ‘read’ ), $attr ) );
if ( current_user_can( $capability ) && !is_null( $content ) && !is_feed() )
return $content;return ‘Desculpe, apenas membros registados podem ter acesso a estes conteúdos.’;
}add_shortcode( ‘access’, ‘access_check_shortcode’ );
Código de utilização:
[access capability="switch_themes"]
5- COMO INTEGRAR OS SEUS CONTEÚDOS DE RSS FEED
Entre outras coisas fantásticas, o WordPress tem um leitor de RSS Feeds integrado no seu código, que ajuda-o a ler Feeds RSS no painel de controlo do seu blog WordPress. No entanto, recorrendo a um pequeno shortcode, é possível colocar esses mesmos RSS Feeds onde você desejar, incluindo nos seus posts.
//This file is needed to be able to use the wp_rss() function.
include_once(ABSPATH.WPINC.’/rss.php’);function readRss($atts) {
extract(shortcode_atts(array(
“feed” => ‘http://’,
“num” => ’1′,
), $atts));return wp_rss($feed, $num);
}add_shortcode(‘rss’, ‘readRss’);
Código de utilização:
[rss feed="http://feeds2.feedburner.com/wordpresslove" num="5"]
6- CRIAR UM ENDEREÇO URL CURTO PARA O SEU TWITTER
Uma das vantagens que o Twitter tem, é utilizar no seu código o core da TinyURL para encurtar os endereços URL presentes nos posts dos seus utilizadores. No entanto, quando você escreve um artigo, não há nada pior do que ter de ser você a ir encurtar o endereço que pretende. Que tal facilitar a vida dos seus leitores com um shortcode que o faça automaticamente?
function subzane_shorturl($atts) {
extract(shortcode_atts(array(
‘url’ => ”,
‘name’ => ”,
), $atts));
$request = ‘http://u.nu/unu-api-simple?url=’ . urlencode($url);
$short_url = file_get_contents($request);
if (substr($short_url, 0, 4) == ‘http’) {
$name = empty($name)?$short_url:$name;
return ‘<a href=”‘.$short_url.’”>’.$name.’</a>’;
} else {
$name = empty($name)?$url:$name;
return ‘<a href=”‘.$url.’”>’.$name.’</a>’;
}
}
add_shortcode(‘shorturl’, ‘subzane_shorturl’);
Código de utilização:
[shorturl name="shortcode" url="http://codex.wordpress.org/Shortcode_API"]
7- APRESENTE A ÚLTIMA IMAGEM ANEXADA A UM POST
Em vez utilizar custom fields ou endereços URL para puxar as imagens anexadas aos seus posts, porque não recorrer a um shortcode que o faça automaticamente por si?
function sc_postimage($atts, $content = null) {
extract(shortcode_atts(array(
“size” => ‘thumbnail’,
“float” => ‘none’
), $atts));
$images =& get_children( ‘post_type=attachment&post_mime_type=image&post_parent=’ . get_the_id() );
foreach( $images as $imageID => $imagePost )
$fullimage = wp_get_attachment_image($imageID, $size, false);
$imagedata = wp_get_attachment_image_src($imageID, $size, false);
$width = ($imagedata[1]+2);
$height = ($imagedata[2]+2);
return ‘<div class=”postimage” style=”width: ‘.$width.’px; height: ‘.$height.’px; float: ‘.$float.’;”>’.$fullimage.’</div>’;
}
add_shortcode(“postimage”, “sc_postimage”);
Código de utilização:
[postimage]
8- ADICIONE NOTAS ADMINISTRATIVAS AOS SEUS POSTS
Quando se trabalha com blogs multi-editor, é extremamente importante notificar outros escritores de problemas que existam nos seus posts. E se pudesse adicionar notas a esses mesmos posts, que só pudessem ser lidas por outros administradores? Nada como usar um shortcode que lhe resolva esse problema:
add_shortcode( ‘note’, ‘sc_note’ );
function sc_note( $atts, $content = null ) {
if ( current_user_can( ‘publish_posts’ ) )
return ‘<div class=”note”>’.$content.’</div>’;
return ”;
}
Código de utilização:
[note]Esta é uma nota pessoal que só pode ser lida por administradores![/note]
9- REMOVA A FORMATAÇÃO AUTOMATICA DO WORDPRESS
Se por ventura é um programador ou desenvolvedor, e costuma colocar porções de código no seu blog WordPress, provavelmente já reparou que a formatação automática do WordPress pode ser um verdadeiro problema. No entanto, existe um shortcode que o ajuda a resolver esse problema em determinadas porções de texto. Vejamos:
function my_formatter($content) {
$new_content = ”;
$pattern_full = ‘{(\[raw\].*?\[/raw\])}is’;
$pattern_contents = ‘{\[raw\](.*?)\[/raw\]}is’;
$pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);foreach ($pieces as $piece) {
if (preg_match($pattern_contents, $piece, $matches)) {
$new_content .= $matches[1];
} else {
$new_content .= wptexturize(wpautop($piece));
}
}return $new_content;
}remove_filter(‘the_content’, ‘wpautop’);
remove_filter(‘the_content’, ‘wptexturize’);add_filter(‘the_content’, ‘my_formatter’, 99);
Código de utilização:
[raw]Esta porção de texto não será formatada automaticamente pelo WP.[/raw]
10- APRESENTE AS ESTATÍSTICAS DO SEU BLOG ATRAVÉS DE SHORTCODES
Sempre gostou da possibilidade de mostrar as estatísticas do seu blog em tempo real? Graças ao Wesley e ao seu plugin “Blog Stats”, é possível você apresentar de forma dinâmica e através de shortcodes, todas as estatísticas do seu blog. Descarregue o plugin Blog Stats e depois de instalado, utilize os seguintes shortcodes:
[pagerank]
[feedburner_subscribers]
[alexa_rank]
[technorati_authority]
[technorati_rank]
[user_count]
[post_count]
[page_count]
[comment_count]
[trackback_count]
[avg_comments_per_post]
[category_count]
[tag_count]
[link_count]
[google_backlinks]
[yahoo_backlinks]
[delicious_bookmarks]
Bons truques! Até Já!
























































Rafael
Desculpa a ignorância mais em qual arquivo php colocamos index.php,sidebar,?
Gustavo Freitas
Paulo,
parabéns pelo artigo, ótimas dicas já anotadas e que irei utilizando conforme a necessidade,
um abraço.
Paulo Faustino
Obrigado pelos comentários amigos!
Zé da Silva
Muito boas as dicas ! Parabéns !
ORiOn
Falta a fonte de onde o traduziste.
Rafael, no ficheiro functions.php, se não o tiveres cria um.
Leo Baiano
Tentei a dica número 7 mas não deu certo, voltei aos custom fields!
Rafael
valeu orion,não entendo muito de php e é meu primeiro blog wordpress! e a função é só colocar no final das postagens?
abraço!
Felipe
Poxa, tentei o de relacionar posts mas não obtive sucesso, aparentemente parte do código o wp aceita, mas perto da metade do código o wp simplesmente não entende nada =P.
Usei o note++. nele é visível onde o problema começa. Alguém conseguiu colocar ele funcionando ai?
ORiOn
Rafael, a função metes onde quiseres.
Rafael
Orion nem consegui colocar os codigos nem funcionava,coloquei no fuction.php mais o dificil é saber exatamente onde pois para quem não entende php não sei onde começa o codigo e onde acaba o codigo de cada função tanto que quando testei colocar no final deu erro e até sai do a o blog,fiz upload do function e voltou ao normal,até tentei ir do exemplo do codigo e achar algum que comece com funtion mais quando conseguia por não funcionava!
Valeu mesmo assim pela ajuda!
Araguaci
Tentei usar o [related_posts] mas não deu certo. Onde deve ser incluída a função?
Inversu
Paulo estou com a mesma duvida, no ponto 4 onde coloco a função?
abraço
ZackShinra
Este post parece fazer sucesso, já é o segundo lugar que vejo sem citar a fonte.
Este assunto está sendo discutido no fórum WordPress: http://br.forums.wordpress.org/topic/shortcodes-e-plagios?replies=2#post-3756
DebocheBR
Bom para esse shortcode de artigos relacionados funcionar voce deve pegar o codigo desse site aqui
http://blue-anvil.com/archives/8-fun-useful-shortcode-functions-for-wordpress/
Porque ele ja vem cerinho, copie o codigo do artigos relacionados e coloque no function.php do seu tema e entao quando for postar um artigo coloque [related_posts] no final do artigo e nao no template. Se voce copiar o codigo que esta aqui no wordpress-love ele vai todo modificado e por isso da erro.
Espero que eu tenha explicado direito.
DJIO
Olá Paulo,
Parabéns pela publicação do artigo, certamente muito útil temos esta informação em português
Grande abraço,
Djio