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=”488×200″ 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á!