A comunidade WordPress está a crescer a um ritmo impressionante, e todos os dias surgem novos hacks (truques) para resolver problemas que aparentemente era complexos. Neste artigo vamos apresentar-lhe os melhores, mais desejados, e mais úteis hacks para WordPress que poderá utilizar para elevar o seu blog ao próximo nível. Iremos tentar explicar como funciona cada um dos hacks, pelo que se tiver dúvidas, não hesite em utilizar os comentários do blog.

1. Link para fontes externas a partir do título do seu artigo

Muitas vezes os blogueiros encontram dificuldade em fazer com que os links dos títulos dos seus artigos apontem directamente para a fonte de informação de onde retiraram o conteúdo. Algo que acontece frequentemente em redes sociais de partilha de conteúdos como o Dihitt.com.br ou o Ueba.com.br. O grande problema prende-se com o facto de o blogueiro ter de escrever um novo artigo para dizer aos seus leitores que devem visitar um outro link. Neste hack para Campos Personalizados do WordPress iremos explicar-lhe como linkar directamente os títulos dos seus posts para as fontes originais das notícias.

A primeira coisa a fazer é visitar o seu ficheiro functions.php do seu template. Caso não tenha um crie-o e coloque-o juntamente com os outros ficheiros que prefazem o seu template. Copie e cole dá dentro o seguinte código:

function print_post_title() {
global $post;
$thePostID = $post->ID;
$post_id = get_post($thePostID);
$title = $post_id->post_title;
$perm = get_permalink($post_id);
$post_keys = array(); $post_val = array();
$post_keys = get_post_custom_keys($thePostID);

if (!empty($post_keys)) {
foreach ($post_keys as $pkey) {
if ($pkey==’url1′ || $pkey==’title_url’ || $pkey==’url_title’) {
$post_val = get_post_custom_values($pkey);
}
}
if (empty($post_val)) {
$link = $perm;
} else {
$link = $post_val[0];
}
} else {
$link = $perm;
}
echo ‘<h2><a href=”’.$link.’” rel=”bookmark” title=”’.$title.’”>’.$title.’</a></h2>’;
}

Agora apenas precisa abrir o seu index.php e encontrar o seguinte loop ou similar:

<h2><a href=”<?php the_permalink() ?>” rel=”bookmark”><?php the_title(); ?></a></h2>

Altere-o para:

<?php print_post_title(); ?>

Depois de efectuar as mudanças, envie os seus ficheiros editados para o seu servidor.

Agora, quando escrever um artigo, visite os Custom Fields (Campos Personalizados). Encontre o nome: url1, title_url, ou url_title e adicione na chave o endereço para onde deseja que os seus visitantes vão. Adicione uma descrição se desejar, e depois clique em publicar.

Não tenha medo, esta função não altera os títulos base do seu blog, a única coisa que faz é adicionar uma nova query para procurar primeiro por conteúdo que esteja nos custom fields. Se não existir conteúdo, o seu título funcionará como até então… Existe um plugin que faz precisamente o mesmo, nomeadamente o Page Links To.

2. Altere o Gravatar por defeito nos Comentários

O homem misterioso que aparece por defeito nos comentários do seu blog WordPress pode ser extremamente irritante para os seus leitores. Se tem mais uma forma de aumentar o branding do seu blog, porque não fazê-lo? Alterar o gravatar por defeito pode ser uma excelente forma de criar um conceito mais interessante no seu blog.

Primeiro abra o seu ficheiro functions.php e copie e cole o seguinte código:

add_filter( ‘avatar_defaults’, ‘newgravatar’ );

function newgravatar ($avatar_defaults) {
$myavatar = get_bloginfo(’template_directory’) . ‘/images/gravataricon.gif’;
$avatar_defaults[$myavatar] = “WP-Love”;
return $avatar_defaults;
}

A imagem é extraída directamente da pasta de template, e por defeito está gravataricon.gif embora possa trocar o nome no código para aquele que desejar. Onde diz WP-Love, esse é o nome que irá aparecer no painel de gravatars do seu WordPress, pelo que poderá alterá-lo para o que desejar.

Visite o painel de Opções do seu blog (Settings) > Discussão, e altere o icon, sendo que poderá agora utilizar um que faça uso da imagem do seu blog.

3. Apresente um botão de Retweet com a sua imagem

Com o Twitter a ganhar cada vez mais exposição social, você deverá tentar ao máximo aproveitar essa onda. Uma das formas de o fazer é colocando um botão de Retweet no seu blog, para que os leitores possam “retweetar” os seus conteúdos imediatamente.

Comece por adicionar o seguinte código no seu ficheiro single.php

Para o botão grande:

<script type=”text/javascript”>
tweetmeme_source = ‘wp-love’;
</script>
<script type=”text/javascript” src=”http://tweetmeme.com/i/scripts/button.js”> </script>

Para o botão compacto:

<script type=’text/javascript’>
tweetmeme_style = “compact”;
tweetmeme_source = ‘wp-love’;
</script>

Lembra-se de mudar a “source” para o seu nome na conta do twitter, sendo que desta forma poderá promover a sua conta e conseguir mais seguidores.

4. Apresentar imagens aleatoriamente no cabeçalho do blog

A grande maioria dos blogs tornam-se aborrecidos quando fazem uso de uma grande imagem estática no cabeçalho. Ideal mesmo, é ter várias imagens que possam rodar no cabeçalho automaticamente. Poderá seleccionar o número de imagens que pretende rotacionar no seu cabeçalho.

A primeira coisa que terá de fazer é nomear as suas imagens no seguinte formato:

  • headerimage_1.gif
  • headerimage_2.gif
  • headerimage_3.gif

Deverá separar sempre a imagens com o underscore.

Depois de efectuar isso, basta copiar e colar o seguinte código no header.php ou onde pretende que as imagens sejam apresentadas.

<img src=”http://path_to_images/headerimage_<?php echo(rand(1,3)); ?>.gif”
width=”image_width” height=”image_height” alt=”image_alt_text” />

Tenha em atenção que troca o número 3 pelo número de imagens que pretende utilizar. Este código não é exclusivo para WordPress e pode ser utilizado em qualquer sistema PHP.

5. Controle quando os seus posts vão para o RSS

Existem alturas em que você publica um artigo no seu blog e rapidamente descobre um erro. Poderá sempre voltar ao seu painel de controlo e editar esse conteúdo, mas este já se encontra publicado nos feeds. Com este hack, poderá colocar um atraso com o tempo que desejar, para puder verificar novamente os seus artigos antes de eles irem para os Feeds RSS.

Abra o seu ficheiro functions.php e adicione-lhe o seguinte código:

function publish_later_on_feed($where) {
global $wpdb;

if ( is_feed() ) {
// timestamp in WP-format
$now = gmdate(’Y-m-d H:i:s’);

// value for wait; + device
$wait = ‘10′; // integer

// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
$device = ‘MINUTE’; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR

// add SQL-sytax to default $where
$where .= ” AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, ‘$now’) > $wait “;
}
return $where;
}

add_filter(’posts_where’, ‘publish_later_on_feed’);

Este código está a colocar 10 minutos de atraso na publicação dos seus conteúdos nos RSS Feeds, mas poderá trocar o valor para aquele que mais desejar.

6. Mostrar certas categorias num Menu

Em muitos casos, os blogueiros gostavam de mostrar apenas certas categorias no menu dos seus blogs. Existem lugares limitados, que só podem ser preenchidos com as categorias essenciais, mas se usar o código wp_list_categories ele irá apresentar as categorias todas. É por isso que este hack se torna muito útil, para apresentar determinadas categorias sem que tenha de apresentar precisamente todas.

<ul style=”float:left; width:730px;”>
<?php wp_list_categories(‘orderby=name&include=7,9,19,16,1,5,17,23’); ?>
</ul>

Note, poderá seleccionar o texto ‘include’ para ‘exclude’ e mostrar todas as categorias, excluindo aquelas que não deseja. Os números mostrados no código são os IDs das respectivas categorias. Lembre-se que o WordPress mostra categorias num formato de lista, pelo que terá de editar o seu CSS para que funcione tudo correctamente e como deseja.

7. Separe os TrackBacks dos Comentários

Nunca é demais relembrar este truque, que lhe permite separar os trackbacks dos comentários nas discussões do seu blog, evitando acumular links e comentários, tornando a leitura mais difícil para os seus leitores.

Comece por abrir o seu ficheiro comments.php e procure por um loop parecido com este:

foreach ($comments as $comment) : ?>
// Comments are displayed here
endforeach;

Troque esse código por este:

<ul>
<?php //Displays comments only
foreach ($comments as $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type == ‘comment’) { ?>
<li>//Comment code goes here</li>
<?php }
endforeach;
</ul>

<ul>
<?php //Displays trackbacks only
foreach ($comments as $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type != ‘comment’) { ?>
<li><?php comment_author_link() ?></li>
<?php }
endforeach;

</ul>

Basicamente esta lista diz ao WordPress para mostrar os comentários em duas listas. Se existe um comentário é mostrado numa lista, e se existirem trackbacks, sao colocados noutra lista.

8. Como listar os seus artigos “futuros”

Todos os blogueiros desejam ter mais subscritores nos seus feeds RSS. Uma das formas mais interessantes de captar novos utilizadores, é mostrando-lhes quais os próximos conteúdos que serão brevemente publicados no seu blog, convidando-os a subscrever os Feeds RSS para não perderem pitada.

A primeira coisa que precisa é agendar novos artigos para datas específica. Depois disso, abra o ficheiro sidebar.php ou outro onde pretenda apresentar os seus conteúdos futuros, e cole lá dentro o seguinte código:

<?php query_posts(‘showposts=10&post_status=future’); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<span><?php the_time(‘j. F Y’); ?></span></p>
<?php endwhile;
else: ?><p>Nenhum artigo agendado.</p>
<?php endif; ?>

O seguinte código é gerido pelo parâmetro post_status que neste caso é o “futuro”, embora possam ser rascunhos, artigos publicados e por aí adiante. Existe outro parâmetro no código que pode limitar o número de artigos a apresentar, showposts=10. Pode alterar o número para aquele que desejar.

9. Mostrar Thumbnails ao lado de que cada Post

Uma foto vale sempre mais que mil palavras. Provavelmente nem sempre consegue descrever o conteúdo do seu artigo no excerto que publica na sua homepage, mas adicionar uma imagem torna o artigo mais apelativo ao clique. Com este hack para custom fields, pode fazê-lo facilmente no seu blog.

Primeiro comece por criar uma imagem por defeito com 210 x 210px. Poderá nomear esta imagem como defaultimage.gif ou então com outro nome como wplove.gif como usamos no exemplo e faça o upload dela para o directório do seu template.

Depois disso, abra o ficheiro index.php e cole lá dentro o seguinte código para apresentar a imagem.

<?php $postimageurl = get_post_meta($post->ID, ‘post-img’, true);
if ($postimageurl) {
?>
<a href=”<?php the_permalink(); ?>” rel=”bookmark”><img src=”<?php echo $postimageurl; ?>” alt=”<?php the_title(); ?>” width=”210″ height=”210″ /></a>
<?php } else { ?>
<a href=”<?php the_permalink(); ?>” rel=”bookmark”><img src=”<?php bloginfo(‘template_url’); ?>/images/wplove.gif” alt=”<?php the_title(); ?>” width=”210″ height=”210″ /></a>
<?php } ?>

10. Coloque uma data de expiração dos seus artigos

Este hack pode ser extremamente interessante para quando você pretende desenvolver artigos ou publicar informações no seu blog que não pretende que fiquem online para sempre. Ao invés de remover manualmente o artigo, poderá fazer com que ele expire automaticamente. Poderá funcionar também se tiver um produto com desconto que vai expirar brevemente.

A única coisa que precisa é trocar o loop do seu WordPress por este:

<?php
if (have_posts()) :
while (have_posts()) : the_post(); ?>
$expirationtime = get_post_custom_values(‘expiration’);
if (is_array($expirationtime)) {
$expirestring = implode($expirationtime);
}

$secondsbetween = strtotime($expirestring)-time();
if ( $secondsbetween > 0 ) {
// For example…
the_title();
the_excerpt();
}
endwhile;
endif;
?>

Depois de o fazer, poderá utilizar os custom fields quando escreve um artigo, para marcar a sua data e hora para expirar automaticamente. Tenha em conta que deve usar a chave “expiration” e o seguinte formato para a data: mm/dd/yyyy 00:00:00.

11. Elimine os “Batches” de revisão de artigos

O WordPress tem uma série de coisas boas, nomeadamente a revisão de artigos. Esta funcionalidade foi incluida no WordPress 2.6, e embora seja uma boa funcionalidade, pode causar alguns problemas. Uma delas é aumentar demasiado a sua base de dados. Dependendo do tempo que demora a escrever um artigo, poderá ter mais de 15 revisões disponíveis no seu artigo. Agora já pode removê-las manualmente, ou então pode correr uma simples query que elimina esta funcionalidade.

A primeira coisa a fazer é login no seu phpMyAdmin e seleccionar a sua base de dados WordPress.

Clique no botão SQL e introduza a seguinte query:

DELETE FROM wp_posts WHERE post_type = “revision”;

Neste código apena lemos a tabela wp_posts e removemos todos os artigos associados ao post_type revision. Agora, dependendo da sua base de dados e do número de revisões que guarda por artigo, este hack pode salvar-lhe imenso espaço.

12. Apresente um qualquer RSS Feed no seu blog

Existem muitas alturas em que os blogueiros pretendem apresentar RSS Feeds de outros sites no seu blog. Não precisa de utilizar plugins ou truques complicados para fazer uso desta funcionalidade, uma vez que o WordPress têm-na incluida no seu próprio código.

A única coisa que precisa fazer é colar o seguinte código onde pretende que ele apareça. O mais comum é na sidebar.php:

<?php include_once(ABSPATH.WPINC.’/rss.php’);
wp_rss(‘http://feeds.feedburner.com/wordpresslove’, 5); ?>

Guarde o ficheiro e faça novamente o upload quando tiver concluído. A função que utilizámos neste hack é a wp_rss que está presente no código original do WordPress.

13. Apresente botões estilo “Digg” apenas em artigos específicos

Colocar botões sociais estilo “Digg” nos seus artigos é extremamente importante, especialmente quando você submete os seus conteúdos nessas mesmas redes sociais. No entanto, não deverá fazê-lo para todos os artigos, porque nem todos estão talhados a serem um sucesso social. Se por ventura escreve um artigo com um anúncio qualquer no seu blog, não interessa fazer uso do botão nesse mesmo artigo, uma vez que ele não vai seguramente ser votado.

Adicione o seguinte código ao seu ficheiro single.php onde pretende que ele apareça:

<?php $cf = get_post_meta($post->ID, ‘digg’, true);
if (!emptyempty($cf)) {
echo ‘http://digg.com/tools/diggthis.js” type=”text/javascript”>’} ?>

Agora quando cria um artigo, chame o campo personalizado “Digg” e defina um qualquer valor, e ele irá aparecer no seu conteúdo. Poderá trocar o “digg” e o código na “echo” para outra rede social que desejar. Se não adicionar o campo personalizado, o botão nunca irá aparecer nos seus artigos.

14. Apresente artigos “fixos” numa área

Com este truque, pode definir artigos fixos ou destaques no seu blog, para apresentar na sua homepage ou numa outra determinada página qualquer.

<?php
$sticky = get_option(‘sticky_posts’);
rsort( $sticky );
$sticky = array_slice( $sticky, 0, 5);
query_posts( array( ‘post__in’ => $sticky, ‘caller_get_posts’ => 1 ) );

if (have_posts()) :
while (have_posts()) : the_post();
the_title();
the_excerpt();
endwhile;
endif;

?>

Poderá trocar o número 5 para o número de artigos que pretende apresentar na sua página. Poderá também mostrar artigos completos trocando o código ‘the_excerpt’ para ‘the_content’.

15. Mostrar anúncios depois do primeiro post

Mostrar anúncios depois do seu post é uma excelente forma de ganhar dinheiro. Poderá inclusivamente colocar Adsense se assim o desejar. Geralmente colocar o código do anúncio depois de um artigo, faz com que tenha um bloco de anúncios depois de todos os seus artigos, tornando-se pouco atractivo. Com este hack, pode apresentar um anúncio depois do seu primeiro artigo apenas.

Troque o seu loop pelo seguinte código no ficheiro index.php:

<?php if (have_posts()) : ?>
<?php $count = 0; ?>
<?php while (have_posts()) : the_post(); ?>
<?php $count ; ?>
<?php if ($count == 2) : ?>
//Coloque o código do seu anúncio aqui
<h2><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php else : ?>
<h2><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>

Tenha a certeza de que coloca o código do seu anúncio no local indicado.

Bons truques! Até Já!