Skip to content

10 ótimos shortcodes para WordPress

outubro 12, 2010

CTRL+C,CTRL+V from http://imasters.com.br/artigo/15146/wordpress/10_otimos_shortcodes_para_wordpress

Os shortcodes do WordPress foram introduzidos na versão 2.5. Estes códigos são uma forma muito simples de ‘puxar’ a informação desejada, recorrendo a poucas linhas de código. Neste artigo, vou mostrar-lhe os 10 shortcodes mais incríveis para WordPress, que você poderá começar a utilizar imediatamente no seu blog!

01. Apresentar artigos relacionados

Os artigos relacionados são uma forma muito eficiente de manter os leitores por mais tempo no seu blog, ocupados com a visitação de novas páginas constantemente. Isso aumenta o número de páginas vistas gradualmente, ao mesmo tempo que aumenta o potencial de rentabilidade do seu blog. Existem dezenas de plugins para executar esta função, mas por que 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]

02. 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"]

03. Integrar anúncios no 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]  

04. Mostrar conteúdo privado para membros premium

Cada vez mais os blog e blogueiros adotam os chamados ‘conteúdos premium’, onde determinados grupos de usuários têm de pagar para ter acesso a conteúdos privilegiados. Sabe como apresentar conteúdos premium apenas para os seus ‘usuários premium’? 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"]

05. Como integrar 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 possibilita a leitura dos feeds no painel de controle do blog wordpress. No entanto, recorrendo a um 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:

    
  • Ocorreu um erro. É provável que o feed esteja indisponível. Tente mais tarde.

06. Encurtar um endereço URL para o twitter

Uma das vantagens que o Twitter tem é de utilizar no seu código o core da TinyURL para encurtar os endereços URL presentes nos posts dos seus usuários. No entanto, é possível facilitar a vida dos leitores com um shortcut que faça isso 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"]

07. Apresente a última imagem anexada a um post

Em vez de utilizar custom fields ou endereços URL para puxar as imagens anexadas aos seus posts, por que não recorrer a um shortcode que o faça automaticamente?

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 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 para resolver esse problema:

add_shortcode( 'note', 'sc_note' );
function sc_note( $atts, $content = null ) {
if ( current_user_can( 'publish_posts' ) )
return '<div>'.$content.'</div>';
return ";
}

Código de utilização:

[note]Esta é uma nota pessoal que só pode ser lida por administradores![/note]

09. Remova a formatação automática do WordPress

Se você é 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 com 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  apresentar de forma dinâmica, e através de shortcodes, todas as estatísticas do seu blog. Faça download do 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]

Até a próxima!!

Anúncios
No comments yet

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: