Os shortcodes são parte integrante do WordPress há muito tempo, e uma das melhores formas de puxar informação diretamente para as suas páginas e postagens do seu blog. Recentemente os colegas do wptuts deram a conhecer alguns shortcodes interessantes que vamos usar no nosso artigo de hoje. Com os Shortcodes do WordPress, é possível ser-se extremamente criativo, principalmente se dermos uso à API de Shortcodes do WordPress, para puxarmos informação de fontes externas ao blog.

1. VISUALIZAR DE GOOGLE DOCS

Os PDFs são usados na internet para variados fins, nomeadamente documentação, mas infelizmente, mas muitos usuários menos experimentes acabam por ser obrigados a instalar aplicações para conseguirem visualizar os PDFs disponibilizados na internet, o que faz com que normalmente acabem por não os ler. Felizmente, o Google Docs oferece um visualizador de PDFs que resolve esse problema. Este plugin, cortesia da Noscope oferece a possibilidade de link diretamente para um visualizador do Google Docs, inserindo apenas o link para o PDF no parâmetro do shortcode.

function pdflink($attr, $content) {
    if ($attr['href']) {
        return '<a class="pdf" href="http://docs.google.com/viewer?url=' . $attr['href'] . '">'.$content.'</a>';
    } else {
        $src = str_replace("=", "", $attr[0]);
        return '<a class="pdf" href="http://docs.google.com/viewer?url=' . $src . '">'.$content.'</a>';
    }
}
add_shortcode('pdf', 'pdflink');

De facto, com alguns tweaks, este shortcode pode ser usado como visualizador para outros tipos de ficheiros, como por exemplo apresentações de PowerPoint e documentos Word. O usuário poderá guardar esses ficheiros na sua livraria do Google Docs, guardar o ficheiro, imprimi-lo ou apenas editá-lo.

Este shortcode em particular é muito fácil de usar com apenas um parâmetro: o link para o seu PDF. Assim:

[pdf=http://manuals.info.apple.com/en_US/Enterprise_Deployment_Guide.pdf]Link text.[/pdf]

2. EMBEBER O GOOGLE ADSENSE EM QUALQUER LUGAR

Ganhar dinheiro na internet com blogs é sem dúvida uma realidade cada vez mais presente, mas isso requer ao mesmo tempo formas de monetização para que esse projeto possa dar seus lucros. Muitos blogueiros fazem isso através de anúncios, normalmente anúncios da Google. Com este shortcode simples você poderá colocar seus anúncios do Adsense, onde bem desejar em suas postagens.

function showads() {
    return '<script type="text/javascript"><!--
google_ad_client = "<em>your client id</em>";
google_ad_slot = "<em>your ad slot id</em>";
google_ad_width = <em>width</em>;
google_ad_height = <em>height</em>;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
';
}  

add_shortcode('adsense', 'showads');

Se não usa o Google Adsense para ganhar dinheiro, poderá o mesmo shortcode para programas de afiliados ou outras formas de monetização que use.

Para mostrar um anúncio num artigo do seu blog, apenas necessita copiar e colar o seguinte shortcode para onde deseja que o anúncio apareça.

[adsense]

3. ADICIONAR NOTAS PRIVADAS AOS ARTIGOS

Se você tem um time trabalhando com você em seu blog, a comunicação entre vocês é fundamental. Usando este shortcode para deixar mensagens que só os administradores do blog conseguem ver, você poderá manter sua comunicação em dia. Este shortcode coloca a sua nota numa classe “note”, permitindo-lhe estilizar as notas usando CSS.

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

add_shortcode( 'note', 'sc_note' );

Para usar este shortcode, basta envolver a sua nota usando as tags [note]

[note]<em>Suas notas</em>[/note]

4. OFUSCAR UM ENDEREÇO DE EMAIL

Ninguém gosta de spam, e colocar seu endereço de email visível na internet não ajuda muito. No entanto, você certamente irá necessitar de mostrar seu email para seus leitores, e usando este shortcode você pode ofuscar ele e evitar ser apanhado nas malhas e scripts de captação de emails para spam.

function munge_mail_shortcode( $atts , $content=null ) {  

    for ($i = 0; $i < strlen($content); $i++) $encodedmail .= "&#" . ord($content[$i]) . ';';   

    return '<a href="mailto:'.$encodedmail.'">'.$encodedmail.'</a>';  

}
add_shortcode('mailto', 'munge_mail_shortcode');

Este shortcode basicamente codifica seu endereço de email em caracteres HTML, ao invés de texto. Embora não seja 100% anti-spam, é uma excelente forma de manter seu email longe desses problemas. Para usar este shortcode, basta envolver seu endereço de email nas tags [mailto] como mostramos de seguida.

[mailto]myemail@example.com[/mailto]

5. EMBEBER O GOOGLE MAPS

Muitos templates para WordPress incluem shortcodes para YouTube – ou um serviço similar – o que significa que adicionar videos é tão simples quanto clicar num botão e colocar o ID do vídeo. No entanto, com este incrível shortcode, você poderá adicionar mapas do Google Maps em seu blog, bastando colocar o URL providenciado pela página do próprio mapa.

function fn_googleMaps($atts, $content = null) {
   extract(shortcode_atts(array(
      "width" => '640',
      "height" => '480',
      "src" => ''
   ), $atts));
   return '<iframe width="'.$width.'" height="'.$height.'" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="'.$src.'"></iframe>';
}
add_shortcode("googlemap", "fn_googleMaps");

Existem apenas 3 atributos para usar neste shortcode: largura, altura e o URL. Os primeiros dois são bastante óbvios, sendo que o terceiro, o URL do mapa, você poderá puxar diretamente do Google Maps.

[googlemap width="600" height"360" src="http://google.com/maps/?ie=..."]

6. EMBEBER UM RSS FEED

Este shortcode permite-lhe embeber um RSS feed através de um simples shortcode usando as ferramentas de RSS integradas no próprio WordPress. Este incrível shortcode necessita apenas de dois parâmetros para funcionar corretamente.

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');

Para funcionar corretamente, coloque o URL do seu RSS feed no atributo “feed”, e o número de postagens que pretende mostrar no atributo “num”.

[rss feed="http://feeds.feedburner.com/webdesigntutsplus" num="3"]

7. BOTÃO DE PARTILHA DO TWITTER

O Twitter introduziu um botão de partilha há algum tempo atrás, que permite a usuários ligados no Twitter, partilharem as postagens do seu blog com um simples clique. Adicionar esse botão em seus artigos é igualmente muito simples, especialmente se usar este poderoso shortcode. Este shortcode permite-lhe adicionar um botão de partilha do Twitter nos seus artigos, usando um simples shortcode.

function twitter( $atts, $content=null ){
/* Author: Nicholas P. Iler
 * URL: http://www.ilertech.com/2011/07/add-twitter-share-button-to-wordpress-3-0-with-a-simple-shortcode/
 */  

    extract(shortcode_atts(array(
        'url' => null,
        'counturl' => null,
        'via' => '',
        'text' => '',
        'related' => '',
        'countbox' => 'none', // none, horizontal, vertical  

    ), $atts));  

    // Check for count url and set to $url if not provided
    if($counturl == null) $counturl = $url;  

    $twitter_code = <<    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"><!--mce:0--></script>
<a class="twitter-share-button" href="http://twitter.com/share"></a>
HTML;  

    return $twitter_code;  

}
add_shortcode('t', 'twitter');

Existem dois usos para este shortcode. A forma mais simples é mostrada de seguida, que mostra o botão mais pequeno nos seus artigos.

[t url='get_permalink();']

Se quiser usar um botão com contador, terá apenas de configurar um parâmetro para definir se pretende um botão horizontal ou vertical.

[t countbox="horizontal/vertical"]

Por último, é possível também definir quais as contas do Twitter a indicar depois do usuário realizar o seu tweet, de forma a conseguir mais seguidores no Twitter.

[t related='connorturnbull: Author, escolawordpress: Sister Site']

8. MOSTRAR CONTEÚDO PARA MEMBROS REGISTRADOS

Uma tendência que vem a aumentar nos últimos tempos é a de mostrar conteúdos apenas a membros registrados, sendo que muitas vezes esses conteúdos são chamados de “Premium”. O WordPress tem um sistema de gerenciamento de usuários muito bom, e juntamente com este shortcode pode ajudá-lo a aumentar o número de usuários em seu site/blog. Usando este shortcode, qualquer conteúdo mostrado entre as tags fica apenas visível a usuários registrados no site.

Se estiver com receios relativamente aos seus RSS feeds, este shortcode irá também esconder os conteúdos premium do seu Feed geral.

add_shortcode( 'member', 'member_check_shortcode' );  

function member_check_shortcode( $atts, $content = null ) {
     if ( is_user_logged_in() && !is_null( $content ) && !is_feed() )
        return $content;
    return '';
}

Usando as tags [member] você poderá esconder seus conteúdos do público em geral.

[member]My super secret content.[/member]

9. MOSTRAR ARTIGOS RELACIONADOS

Os artigos relacionados são uma das melhores formas de você convencer seus usuários a lerem mais conteúdos do seu blog. Você poderá implementar artigos relacionados no seu template usando plugins, mas este shortcode consegue fazer-lhe o mesmo trabalhando, podendo até ser personalizado através dos seus atributos.

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>No related posts found</li>';
        }
        $retval .= '</ul>';
        return $retval;
    }
    return;
}

Você poderá puxar os artigos relacionados do seu blog usando simplesmente o shortcode que se encontra em baixo. Alternativamente, poderá limitar o número de postagens a indicar usando os parâmetros, tal como mostramos no segundo exemplo.

[related_posts]

ou assim:

[related_posts limit="10"]

10. MOSTRAR A ÚLTIMA IMAGEM ANEXADA AO ARTIGO

Este é um shortcode muito interessante que lhe permite mostrar a última imagem anexada a um determinado artigo usando um simples shortcode. Obviamente, o WordPress tem a sua ferramenta própria de imagens, mas que nem sempre funciona corretamente dependendo do tipo de trabalho que você pretende desenvolver. Felizmente, esta função permite-lhe carregar uma imagem e puxar essa mesma imagem para o lugar que bem desejar, desde que essa imagem seja a última a ser carregada.

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");

Tal como em quase todos os shortcodes que já falámos, este junta-se ao grupo dos mais simples de usar. A tag por ser usada isoladamente, ou com uma dimensão especificada para customizar a sua extensão.

[postimage size="num" float="left/right"]

11. EMBEBER UM GRÁFICO DO GOOGLE

Este incrível shortcode permite-lhe embeber um tipo de mídia muito interessante em seus projetos online. Não é um vídeo do YouTube, nem nenhum efeito HTML5 ou Flash. Na verdade, são gráficos mesmo.

Embora os gráficos possam ser extremamente aborrecidos, a API do Google Charts permite-lhe criar gráficos extremamente interessantes, ainda para mais se você tornar esses gráficos lindos num simples shortcode para utilização rápida no WordPress. A experiência usando este shortcode é ainda um pouco laboratorial em comparação com outros, mas certamente que lhe irá poupar imenso tempo a longo prazo.

function chart_shortcode( $atts ) {
    extract(shortcode_atts(array(
        'data' => '',
        'colors' => '',
        'size' => '400x200',
        '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');

Para usar este shortcode, é importante que você tenha algum conhecimento sobre como funciona a API do Google Charts. Se possível, mantenha inclusive a documentação da API por perto, para ter noção de como as coisas funcionam.

Assim que tenha algum conhecimento, os parâmetros serão certamente simples de usar, nomeadamente os valores de dados, cores, cor de fundo, tamanho, título, entre outros.

[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"]

12. DESLIGAR FORMATAÇÃO DO WORDPRESS

Em alguns casos, você poderá desejar apresentar texto que é renderizado negativamente pelo editor do seu blog WordPress. Com este shortcode, você poderá remover a formatação automática de textos do WordPress.

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);

A utilização é extremamente simples e apenas necessita de embeber o texto nas tags [raw] do shortcode.

[raw]My unformatted text[/raw]

13. MOSTRAR ESTATÍSTICAS DO BLOG

Muitos blogueiros adoram mostrar quantos artigos estão publicados no seu blog, ou quantos comentários já foram postados, ou outro tipo de estatísticas. Com este shortcode, você poderá puxar um vasto leque de estatísticas para uma página ou artigo se assim o desejar.

add_shortcode('wcs_count', 'wcs_count_shortcode_handler');  

function wcs_count_shortcode_handler($atts)
{
    // extract parameters
    $parms = shortcode_atts(array(
        'type' => 'posts',
        'format' => 'true',
        'extra' => '1',
        ), $atts);  

    $type = strtolower($parms['type']);
    $format = strtolower($parms['format']);
    $extra = $parms['extra'];  

    // process t/f options
    $b_format = false;
    if (($format == 'yes') || ($format == 'y') ||
        ($format == 'true') || ($format == '1'))
    {$b_format = true;}  

    // exit
    return wcs_get_count($type, $b_format, $extra);
}  

function wcs_get_count($type='posts', $format='1', $extra='1')
{
    // TYPES:
    // posts, posts_by_author, pages, tags, categories
    // users, ms_users, blogroll, blogroll_categories, commenters
    // comments, comments_pending, comments_spam, comments_pingback
    // comments_by_user, comments_by_nicename, comments_by_email
    // comments_per_post  

    // $extra is used with:
    // posts_by_author, comments_by_user, comments_by_nicename, comments_by_email
    // comments_per_post  

    // init
    global $wpdb;
    $type = strtolower($type);
    $count = 0;  

    // process
    switch($type)
    {
        case 'posts': // published
        $count = wp_count_posts('post');
        $count = $count->publish;
        // options: publish, future, draft, pending, private, trash, auto-draft, & inherit
        break;  

        case 'posts_by_author': // use $extra for user/author id
        case 'posts_by_user':
        $query = "SELECT COUNT(*) FROM $wpdb->posts ";
        $where = "WHERE post_type='post' AND post_status='publish' AND post_author='$extra'";
        $count = $wpdb->get_var($query . $where);
        // alternative method is: count_user_posts()
        break;  

        case 'pages': // published
        $count = wp_count_posts('page');
        $count = $count->publish;
        break;  

        case 'tags':
        $count = wp_count_terms('post_tag');
        break;  

        case 'categories':
        $count = wp_count_terms('category');
        break;  

        case 'users':
        $count = count_users();
        $count = $count['total_users'];
        break;  

        case 'ms_users': // multi-site
        $count = get_user_count();
        break;  

        case 'blogroll':
        $query = "SELECT COUNT(*) FROM $wpdb->links ";
        $where = "WHERE link_visible='Y'";
        $count = $wpdb->get_var($query . $where);
        break;  

        case 'blogroll_categories':
        $count = wp_count_terms('link_category');
        break;  

        case 'commenters':
        $query = "SELECT COUNT(DISTINCT comment_author) FROM $wpdb->comments ";
        $where = "WHERE comment_approved='1' AND comment_type=''";
        $count = $wpdb->get_var($query . $where);
        break;  

        case 'comments':
        $query = "SELECT COUNT(*) FROM $wpdb->comments ";
        $where = "WHERE comment_approved='1' AND comment_type=''";
        $count = $wpdb->get_var($query . $where);
        break;  

        case 'comments_pending':
        $query = "SELECT COUNT(*) FROM $wpdb->comments ";
        $where = "WHERE comment_approved='0' AND comment_type=''";
        $count = $wpdb->get_var($query . $where);
        break;  

        case 'comments_spam':
        $query = "SELECT COUNT(*) FROM $wpdb->comments ";
        $where = "WHERE comment_approved='spam' AND comment_type=''";
        $count = $wpdb->get_var($query . $where);
        break;  

        case 'comments_pingback':
        case 'comments_pingbacks':
        case 'comments_trackback':
        case 'comments_trackbacks':
        $query = "SELECT COUNT(*) FROM $wpdb->comments ";
        $where = "WHERE comment_approved='1' AND comment_type='pingback'";
        $count = $wpdb->get_var($query . $where);
        break;  

        case 'comments_by_user': // use $extra for user_id
        $query = "SELECT COUNT(*) FROM $wpdb->comments ";
        $where = "WHERE comment_approved='1' AND comment_type='' AND user_id='$extra'";
        $count = $wpdb->get_var($query . $where);
        break;  

        case 'comments_by_author': // use $extra for author nicename (case INsensitive)
        case 'comments_by_nicename':
        $query = "SELECT COUNT(*) FROM $wpdb->comments ";
        $where = "WHERE comment_approved='1' AND comment_type='' AND comment_author='$extra'";
        $count = $wpdb->get_var($query . $where);
        break;  

        case 'comments_by_email': // use $extra for author email (case INsensitive)
        $query = "SELECT COUNT(*) FROM $wpdb->comments ";
        $where = "WHERE comment_approved='1' AND comment_type='' AND comment_author_email='$extra'";
        $count = $wpdb->get_var($query . $where);
        break;  

        case 'comments_per_post': // $extra is decimal place precision (0 for integer only)
        // posts
        $posts_count = wp_count_posts('post');
        $posts_count = $posts_count->publish;
        // comments
        $query = "SELECT COUNT(*) FROM $wpdb->comments ";
        $where = "WHERE comment_approved='1' AND comment_type=''";
        $comment_count = $wpdb->get_var($query . $where);
        // average
        return round($comment_count / $posts_count, $extra);  

        default:
        $count = 0;
    }  

    // exit
    if ($format) {$count = number_format_i18n($count);}
    return $count;  

    /**********************************************************************
     Copyright © 2011 Gizmo Digital Fusion (http://wpCodeSnippets.info)
     you can redistribute and/or modify this code under the terms of the
     GNU GPL v2: http://www.gnu.org/licenses/gpl-2.0.html
    **********************************************************************/
}

Para o shortcode funcionar, apenas terá de definir o tipo de estatística que pretende mostrar, seleccionando o atributo “type”.

[wcs_count type="posts"]

14. MOSTRAR IMAGENS DO FLICKR

Muitos blogueiros usam o Flickr para gerirem as suas fotografias. Um selo do Flickr é um pequeno widget que lhe permite mostrar galerias de imagens do Flickr numa página ou artigo. Com este shortcode, poderá fazê-lo em poucos segundos.

function flickr_badge_shortcode($atts, $content=NULL){  

$query_atts = shortcode_atts(array('count' => '6', 'display' => 'latest', 'source' => 'user', 'size' => 't', 'user' => '', 'layout' => 'x', 'tag' => '', 'group' => '', 'set' => ''), $atts);  

return sprintf('
<div class="flickr_badge">
<h3>%s</h3> 

<script src="http://www.flickr.com/badge_code_v2.gne?%s" type="text/javascript"></script><span style="position:absolute;left:-999em;top:-999em;visibility:hidden" class="flickr_badge_beacon"><img src="http://geo.yahoo.com/p?s=792600102&t=be99960558f114c2debcedd31896babd&r=http%3A%2F%2Fwp.tutsplus.com%2Farticles%2Fgeneral%2Fresource-roundup-20-creative-shortcodes-to-use-in-your-projects%2F&fl_ev=0&lang=pt&intl=uk" width="0" height="0" alt=""></span></div> 

', $content, http_build_query($query_atts));
}  

add_shortcode('flickrbadge', 'flickr_badge_shortcode');

Este badge do Flickr inclui uma série de parâmetros que terão de ser definidos no shortcode. O parâmetro “count” informa o shortcode do número de imagens a apresentar, o parâmetro “source” descreve os termos de procura de imagens (como o usuário, grupo, etc.) e o parâmetro “display” decide se mostra as imagens de forma aleatória, ou apenas as últimas.

[flickrbadge count="4" layout="h" display="latest" size="t" source="all_tag" tag="fish"]Here’s the latest fish[/flickrbadge]

15. ADICIONAR UM LINK DE DOAÇÕES DO PAYPAL

Nenhum blog se move sozinho, e quer o seu autor trabalhe exclusivamente nele, ou num emprego propriamente dito, o mais provável é ele ter de pagar algumas despesas para o manter no ar. Embora a grande maioria dos blogueiros monetize seus projetos com publicidade, outros aproveitam a sua comunidade através de doações do PayPal. Este shortcode permite-lhe puxar um link de doação a qualquer altura, e é super simples de estilizar de acordo com o seu blog.

function donate_shortcode( $atts ) {
    extract(shortcode_atts(array(
        'text' => 'Make a donation',
        'account' => 'REPLACE ME',
        'for' => '',
    ), $atts));  

    global $post;  

    if (!$for) $for = str_replace(" ","+",$post->post_title);  

    return '<a class="donateLink" href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business='.$account.'&item_name=Donation+for+'.$for.'">'.$text.'</a>';  

}
add_shortcode('donate', 'donate_shortcode');

O shortcode de doação é apenas solicitado através de uma classe de CSS “donateLink” de forma a mostrar o link de doação do jeito que você mais gostar.

[donate]

Até Já!