O WordPress oferece cada vez mais truques e hacks para potenciar ao máximo o seu blog, especialmente quando você está criando um template wordpress. Com a chegada do WordPress 3.1 em menos de 10 dias, esta é a altura certa para otimizar seu template e introduzir alguns destes novos truques e hacks, como forma de melhorar a performance do seu blog, reduzir o número de scripts e plugins instalados e maximizar a sua rendibilidade. Os colegas do Wplift lançaram recentemente algumas novidades interessantes de truques para WordPress, e nós aproveitámos a deixa para lhe trazer 22 Novos Truques e Hacks para o seu blog WordPress!

Ao longo do tempo temos vindo a publicar matérias muito interessantes com dezenas e dezenas de truques, hacks e dicas para o WordPress. Não deixe de ler algumas dessas matérias e aproveitar outros truques que ainda não esteja utilizando em seu blog WordPress. Tome nota:

1. TAGS CONDICIONAIS

As tags condicionais são muito úteis especialmente para você criar items destacados num menu de navegação, mostrar uma classe de CSS diferente dependendo da página onde o usuário se encontra, e por aí adiante.

<ul id="nav">
  <li<?php if ( is_home() || is_category() || is_archive() || is_search() || is_single() || is_date() ) { echo ' class="current"'; } ?>><a href="#">Galeria</a></li>
  <li<?php if ( is_page('about') ) { echo ' class="current"'; } ?>><a href="#">Sobre</a></li>
  <li<?php if ( is_page('submit') ) { echo ' class="current"'; } ?>><a href="#">Enviar</a></li>
</ul>

Experimente correr um exemplo do género em seu menu de navegação e avaliar as diferenças que acontecem quando você usa tags condicionais da forma correta.

2. CAIXA DE INFORMAÇÃO DO AUTOR

Se você tem um blog com multi-autores é muito interessante você mostrar um perfil do autor do artigo no final da postagem, tal como acontece aqui na Escola WordPress. Estas tags irão mostrar várias informações sobre o autor da postagem, bastando você adicioná-las no seu ficheiro single.php:

Para mostrar o Gravatar do autor use:

<?php echo get_avatar( get_the_author_email(), $size = '100' ); ?>

Para mostrar o link do site do Autor use:

<a href="<?php the_author_url(); ?>">Website do Autor</a>

Para mostrar a informação de perfil do Autor use:

<?php the_author_description(); ?>

3. DESTACAR COMENTÁRIOS DE AUTORES

Esta opção permite-lhe destacar facilmente com cores os comentários de determinados autores, nomeadamente você enquanto autor e os seus colaboradores, fazendo com que seus comentários se destaquem facilmente dos comentários dos leitores.

Adicione este código à sua folha de estilos CSS:

.authcomment {
background-color: #B3FFCC !important;
}

Edite seu ficheiro comments.php com o código:

<li class=”<?php
/* Only use the authcomment class from style.css if the user_id is 1 (admin) */
if (1 == $comment->user_id)
$oddcomment = “authcomment”;
echo $oddcomment;
?>”

4. DESLIGAR O HTML NOS COMENTÁRIOS

Se você não deseja que seus usuários possam utilizar as tags HTML permitidas pelo WordPress, adicione este código ao seu ficheiro functions.php:

// This will occur when the comment is posted
function plc_comment_post( $incoming_comment ) {

	// convert everything in a comment to display literally
	$incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']);

	// the one exception is single quotes, which cannot be #039; because WordPress marks it as spam
	$incoming_comment['comment_content'] = str_replace( "'", ''', $incoming_comment['comment_content'] );

	return( $incoming_comment );
}

// This will occur before a comment is displayed
function plc_comment_display( $comment_to_display ) {

	// Put the single quotes back in
	$comment_to_display = str_replace( ''', "'", $comment_to_display );

	return $comment_to_display;
}

add_filter( 'preprocess_comment', 'plc_comment_post', '', 1);
add_filter( 'comment_text', 'plc_comment_display', '', 1);
add_filter( 'comment_text_rss', 'plc_comment_display', '', 1);
add_filter( 'comment_excerpt', 'plc_comment_display', '', 1);

5. MOSTRAR ANÚNCIOS ADSENSE AOS VISITANTES ORGÂNICOS APENAS

Os visitantes vindos dos motores de busca (tráfego orgânico) são aqueles que têm maior tendência para clicar nos seus anúncios Adsense, portanto, para preservar suas taxas de CTR, você pode mostrar seus anúncios apenas a esse tipo de visitantes.

Copie e cole o seguinte código no ficheiro functions.php:

function scratch99_fromasearchengine(){
  $ref = $_SERVER['HTTP_REFERER'];
  $SE = array('/search?', 'images.google.', 'web.info.com', 'search.', 'del.icio.us/search', 'soso.com', '/search/', '.yahoo.');
  foreach ($SE as $source) {
    if (strpos($ref,$source)!==false) return true;
  }
  return false;
}

Depois cole o seguinte código no local de seu template onde pretende que os anúncios apareçam:

if (function_exists('scratch99_fromasearchengine')) {
  if (scratch99_fromasearchengine()) {
    INSERIR CÓDIGO ADSENSE AQUI
  }
}

6. MOSTRAR UM ANÚNCIO DEPOIS DO PRIMEIRO POST

Utilize o seguinte código no seu ficheiro index.php para mostrar um anúncio Google Adsense ou outro depois do primeiro post:

<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); $loopcounter++; ?>

  // the loop stuffs

  <?php if ($loopcounter <= 1) { include (TEMPLATEPATH . '/ad.php'); } ?>

<?php endwhile; ?>

<?php else : ?>

<?php endif; ?>

7. MOSTRAR ÚLTIMOS ARTIGOS

Utilize o seguinte código para mostrar uma lista com os seus últimos 5 posts:

<?php query_posts('showposts=5'); ?>

<ul>
  <?php while (have_posts()) : the_post(); ?>
  <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
  <?php endwhile;?>
</ul>

Se quiser, poderá trocar o valor 5 por outro valor que se enquadre melhor com o número de postagens que pretende mostrar.

8. MOSTRAR POSTAGENS AGENDADAS

Se você tem postagens agendadas no seu blog e pretende mostrar uma listagem do que está para vir, use o seguinte código no local onde pretende que a lista apareça:

<code>
	<?php query_posts('showposts=10&post_status=future'); ?>
	<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

			<p class><b><?php the_title(); ?></b><?php edit_post_link('e',' (',')'); ?><br />

			<span class="datetime"><?php the_time('j. F Y'); ?></span></p>

	<?php endwhile; else: ?><p>Nenhum artigo agendado.</p><?php endif; ?>

</div>

9. MOSTRAR ARTIGOS MAIS COMENTADOS COM THUMBNAIL

Este é um hack bem interessante para você utilizar na sua barra lateral. Apresente a seus usuários uma listagens dos artigos mais comentados do seu blog com miniaturas (thumbnails) a acompanhar. Copie e cole o seguinte código e substitua o endereço http://imagem-alternativa.jpg por uma imagem alternativa caso o post não tenha thumbnail:

<?php $popular = new WP_Query('orderby=comment_count&posts_per_page=5'); ?>

<?php while ($popular->have_posts()) : $popular->the_post(); ?>

<?php $justanimage = get_post_meta($post->ID, 'Image', true);

if ($justanimage) { ?>

<img src="<?php echo get_post_meta($post-/>ID, "Image", true); ?>" alt="<?php the_title(); ?>" />

<?php } else { ?>

<img src="http://imagem-alternativa.jpg" alt="" />

<?php } ?>

<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>

<?php endwhile; ?>

10. MOSTRAR SEU CONTADOR DE SUBSCRITORES FEEDBURNER EM TEXTO

Se gostava de poder mostrar o número de assinantes do seu blog através do Feedburner e em texto, tal como temos aqui na barra lateral de nosso blog, substitua o ENDEREÇO DO FEED com o seu URL:

<?php
$url = file_get_contents('https://feedburner.google.com/api/awareness/1.0/Get
FeedData?uri=ENDEREÇO DO FEED');
$begin = 'circulation="'; $end = '"';
$page = $url;
$parts = explode($begin,$page);
$page = $parts[1];
$parts = explode($end,$page);
$fbcount = $parts[0];
if($fbcount == '') { $fbcount = '0'; }
echo '<b> '.$fbcount.'  Subscritores';
?>
</div>

11. MOSTAR SEU CONTADOR DE SEGUIDORES DO TWITTER EM TEXTO

Se pretende mostrar o número de seguidores do seu blog no Twitter em formato de texto, tal como temos aqui na barra lateral do nosso blog, substitua USERNAME pelo seu nome de usuário no Twitter.

<?php
$twit = file_get_contents('http://twitter.com/users/show/USERNAME.xml');
$begin = '<followers_count>'; $end = '';
$page = $twit;
$parts = explode($begin,$page);
$page = $parts[1];
$parts = explode($end,$page);
$tcount = $parts[0];
if($tcount == '') { $tcount = '0'; }
echo '<b> '.$tcount.' </b> Seguidores';
?>
</div>

12. DESTACAR TEXTO PESQUISADO NOS RESULTADOS DE PESQUISA

Um truque muito simples para destacar o texto pesquisado nos resultados de pesquisa do seu blog WordPress.

Primeiro abra seu ficheiro search.php e procure pela função the_title() e troque-a por:

echo $title;

Agora antes do código modificado, adicione o seguinte:

<?php
    $title     = get_the_title();
    $keys= explode(" ",$s);
    $title     = preg_replace('/('.implode('|', $keys) .')/iu',
        '<strong class="search-excerpt"></strong>',
        $title);
?>

Finalmente, adicione algum estilo ao seu ficheiro stylesheet.css:

strong.search-excerpt { background: yellow; }

13. SEPARAR TRACKBACKS DOS COMENTÁRIOS

Se pretende mostrar os trackbacks separados dos comentários na sua secção de comentários então use o seguinte código:

Abra o ficheiro comments.php e procure por:

<?php foreach ($comments as $comment) : ?>

Depois disso, cole o seguinte código:

<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type == 'comment') { ?>

Agora encontre:

<?php endforeach; /* end for each comment */ ?>

Antes desse código, cole:

<?php } else { $trackback = true; } /* End of is_comment statement */ ?>

Esse código removeu os trackbacks e pingbacks, e agora apenas necessitamos de criar um novo clico para eles em separado. Procure pelo seguinte:

<?php else : // this is displayed if there are no comments so far ?>

Antes dele, cole o seguinte:

<?php if ($trackback == true) { ?>
<h3>Trackbacks</h3>
<ol>
<?php foreach ($comments as $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type != 'comment') { ?>
<li><?php comment_author_link() ?></li>
<?php } ?>
<?php endforeach; ?>
</ol>
<?php } ?>

14. ADICIONE UMA CAIXA DE LOGIN AO SEU TEMPLATE

Se você pretende que seus usuários façam login no seu blog sem terem de ir no painel de administração do seu blog WordPress, você poderá colar o seguinte código onde você deseja colocar a caixa de login, por exemplo na sua barra lateral ou no seu cabeçalho:

<li>
	<?php global $user_ID, $user_identity, $user_level ?>
	<?php if ( $user_ID ) : ?>
	<h2>Control panel</h2>
	<ul>
		<li>Identified as <strong><?php echo $user_identity ?></strong>.
		<ul>
			<li><a href="<?php bloginfo('url') ?>/wp-admin/">Painel</a></li>
			<?php if ( $user_level >= 1 ) : ?>
			<li><a href="<?php bloginfo('url') ?>/wp-admin/post-new.php">Escrever Artigo</a></li>
			<?php endif // $user_level >= 1 ?>
			<li><a href="<?php bloginfo('url') ?>/wp-admin/profile.php">Perfil</a></li>
			<li><a href="<?php bloginfo('url') ?>/wp-login.php?action=logout&redirect_to=<?php echo urlencode($_SERVER['REQUEST_URI']) ?>">Sair</a></li>
		</ul>
		</li>
	</ul>
	<?php elseif ( get_option('users_can_register') ) : ?>
	<h2>Identificação</h2>
	<ul>
		<li>
		<form action="<?php bloginfo('url') ?>/wp-login.php" method="post">
			<p>
			<label for="log"><input type="text" name="log" id="log" value="<?php echo wp_specialchars(stripslashes($user_login), 1) ?>" size="22" /> Usuário</label><br />
			<label for="pwd"><input type="password" name="pwd" id="pwd" size="22" /> Password</label><br />
			<input type="submit" name="submit" value="Enviar" class="button" />
			<label for="rememberme"><input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> Relembrar</label><br />
			</p>
			<input type="hidden" name="redirect_to" value="<?php echo $_SERVER['REQUEST_URI']; ?>"/>
		</form>
		</li>
		<li><a href="<?php bloginfo('url') ?>/wp-register.php">Registrar</a></li>
		<li><a href="<?php bloginfo('url') ?>/wp-login.php?action=lostpassword">Recuperar password</a></li>
	</ul>
	<?php endif // get_option('users_can_register') ?>
</li>

15. EXCLUIR UMA CATEGORIA DA HOMEPAGE

Este é um hack muito interessante, especialmente se você pretende colocar conteúdos numa categoria mas não pretende que esses conteúdos sejam mostrados na homepage do seu blog. Neste código, a categoria excluída é a número 7 :

<?php while ( have_posts() ) {
the_post();
if (is_home()) if (in_category('7')) continue;
?>

Se desejar, poderá trocar o ID da categoria por aquela que desejar excluir.

16. EXCLUIR UMA CATEGORIA DOS RSS FEEDS

Pela mesma razão, você poderá desejar excluir essa categoria de seus RSS Feeds. Novamente, excluímos a categoria 7:

http://www.seururl.com/feed?cat=-7

17. MOSTRAR ARTIGOS DE UMA CATEGORIA NA BARRA LATERAL

Agora que você já excluiu uma categoria da sua homepage e dos seus RSS Feeds, você poderá inclui-la na sua barra lateral com o seguinte código:

<?php query_posts('cat=7&showposts=10'); ?>
<?php while (have_posts()) : the_post(); ?> <a href="<?php the_permalink(); ?>>
<?php the_title(); ?></a><br />
<?php endwhile;?>

18. PUXAR UM RSS FEED EXTERNO EM QUALQUER LOCAL DO SEU BLOG

Se você pretende puxar um qualquer RSS Feed para o seu template, use o seguinte código:

<?php include_once(ABSPATH.WPINC.'/rss.php'); wp_rss('http://exemplo.com/external.php?type=RSS2', 5); ?>

19. ADICIONAR UM SHORTCODE

Os shortcodes para WordPress são uma excelente forma de inserir funções no seu template sem ter de as escrever constantemente. Para o fazer, copie e cole o seguinte código no seu ficheiro functions.php:

# Adiciona um shortcode chamado 'hello'.
function helloworld() {
  return 'Hello World!';
}
add_shortcode('hello', 'helloworld');

Agora, se desejar fazer com que a sua função apareça, apenas precisa de usar o shortcode:

[hello]

20. MOSTRAR HORAS DE POSTAGEM COMO NO TWITTER

Você pode usar este truque para posts/páginas ou comentários:

Para Posts e Páginas:

<?php echo human_time_diff(get_the_time('U'), current_time('timestamp')) . ' ago'; ?>

Para Comentários:

<?php echo human_time_diff(get_comment_time('U'), current_time('timestamp')) . ' ago'; ?>

21. PARTILHAR NO FACEBOOK

Permita a seus usuários partilharem suas postagens facilmente pelo Facebook:

<a href="http://www.facebook.com/sharer.php?u=<?php the_permalink();?>&t=<?php the_title(); ?>" title="Partilhar no Facebook" target="blank">Partilhar no Facebook</a>

22. ESVAZIAR A LIXEIRA DO WORDPRESS AUTOMATICAMENTE

Se pretende que a lixeira de seu blog WordPress seja esvaziada automaticamente, adicione o seguinte código ao seu ficheiro wp-config.php do seu WordPress:

define('EMPTY_TRASH_DAYS', 5 );

Poderá definir o número de dias trocando o “5” pelo número de dias que deseja.

ENCONTROU ALGUM TRUQUE QUE AINDA NÃO USE?

Conseguiu encontrar algum truque ou hack que ainda não esteja usando em seu blog WordPress? Deixe seus comentários e participe do debate! Queremos saber a sua opinião!

Até Já!