Estrutura

5 plugins indispensáveis do WordPress – e 5 dispensáveis

Google+ Pinterest LinkedIn Tumblr
Anúncios Google

Já faz tempo que estou para escrever sobre isso, então vamos cumprir a tarefa antes que o ano acabe: mostrar e falar dos melhores plugins WordPress segundo minhas necessidades mais comuns, os 5 plugins indispensáveis. São os que, por mais que tenha procurado, ainda não descobri como eliminar mantendo as funções, por serem uma combinação perfeita de utilidade com facilidade de uso. Reduzir plugins é prioridade, mas às vezes pode ser bem complicado dar cabo de alguns, como esses.

Pra compensar e manter nossa tradição “anti-plugin”, vou mostrar também 5 plugins dispensáveis, que muita gente usa sem saber que podem ser substituídos por umas poucas linhas de código dentro do tema. Entre eles, os manjados plugins de paginação, criação de breadcrumbs (trilhas de navegação) e posts relacionados.

Indispensáveis

Akismet

Akismet WordPress plugin

Ainda está por aparecer plugin mais útil e indispensável que o Akismet (se você conhece algum, me avise!). O Akismet filtra quantidades absurdas de spam enviado para nossos blogs, é só conferir as estatísticas no painel do blog para ver. Ele é tão útil que já acompanha o pacote de download do WordPress, você só precisa configurar a conta e ativá-lo.

Advanced Custom Fields

Advanced Custom Fields plugin WordPress

Depois que descobri esse plugin, numa mais precisei de códigos para criar campos personalizados que fossem além do padrão do WordPress. Com ele você pode definir regras de onde os campos aparecem: só em posts, ou páginas, ou tipos de post, ou posts que contenham certo termo. É muito flexível.

Pode ainda criar campos de texto, link, botões tipo radio, checkbox, campos de imagem (para depois chamar o url ou objeto da imagem), etc. Tem documentação muito completa no site e ainda conta com extensões premium, mas a versão básica sozinha já é excelente.

Contact Form + Captcha

Contact Form plugin WordPress

Forms de contato são perfeitamente possíveis de serem substituídos por formmails e scripts similares, mas dá um trabalhão, é chato de configurar e ajustar visual, páginas de redirect… Fora a preocupação com spam pelo formulário – se não colocar um captcha, seu e-mail será inundado com lixo tipo “compre viagra”, “aprenda a jogar na loteria”, “você tem milhões em nossa conta”, etc. Estou falando porque já aconteceu comigo.

Esse kit dos plugins Contact Form + Captcha, que são do mesmo desenvolvedor, é perfeito. O primeiro cria um formulário muito compacto e útil, com campos até de anexo e verificação com jQuery. O segundo cria um captcha numérico simples mas que vai acabar com a alegria (bots se alegram?) dos bots de spam.

WordPress SEO

WordPress SEO plugin WordPress

É tranquilo o melhor plugin de SEO do WordPress. Esqueça o resto. Ele tem tantas opções que sozinho já vai eliminar a necessidade de outros plugins, pois tem função própria de breadcrumb, sitemap, redirecionamentos de feed e aplicação do código do Analytics. Compatível com português, tem também função para importar dados de outros plugins, pra você não ter desculpa pra continuar usando o antigo.

O melhor dele são as ferramentas no post, como inserção de palavra chave, análise de SEO pré-publicação, entre outros.

Broken Link Checker

broken link checker plugin WordPress

Links quebrados são um problema pra todos: leitores que não encontram o que queriam, você que perde credibilidade e motores de busca que darão mais relevância a sites com links que funcionam.

Como pode ser muito trabalhoso (ou impossível) checar todos os links em centenas de posts, use esse plugin que detecta e exibe os quebrados no seu painel. Aí basta removê-los ou editá-los ali pelo painel mesmo.

W3 Total Cache/WP Super Cache

Broken Link Checker plugin WordPress

Tanto faz qual você usa, o importante é ter um dos melhores plugins de cache no seu blog. Com eles, o número de requisições diminui e o visitante usa dados armazenados quando volta a visitá-lo, o que reduz drasticamente o tempo de carregamento. Ambos tem muitas opções, precisam ser explorados, mas ajudam demais.

Dispensáveis

Breadcrumbs

Breadcrumb NavXT e similares

Plugins de breadcrumbs (trilhas de navegação) pra que se podemos criar isso com um pouco de código? Basta colar esse código no seu arquivo functions.php:

function the_breadcrumb() {
 echo '<ul id="breadcrumbs">';
 if (!is_home()) {
 echo '<li><a href="'. get_option('home') .'">Home</a></li><li class="separator"> / </li>';
 if (is_category() || is_single()) {
 echo '<li>';
 the_category(' </li><li class="separator"> / </li><li> ');
 if (is_single()) {
 echo '</li><li class="separator"> / </li><li>';
 the_title();
 echo '</li>';
 }
 }
 elseif (is_page()) {
 if($post->post_parent){
 $anc = get_post_ancestors( $post->ID );
 foreach ( $anc as $ancestor ) {
 $output = '<li><a href="'.get_permalink($ancestor).'" title="'.get_the_title($ancestor).'">'.get_the_title($ancestor).'</a></li> <li class="separator">/</li>';
 }
 echo $output;
 echo '<strong title="'.$title.'"> '.$title.'</strong>';
 }
 else {
 echo '<strong> ';
 echo the_title();
 echo '</strong>';
 }
 }
 }
 elseif (is_tag()) { single_tag_title(); }
 elseif (is_day()) { echo"<li>Arquivos de "; the_time('F jS, Y'); echo'</li>'; }
 elseif (is_month()) { echo"<li>Arquivos de "; the_time('F, Y'); echo'</li>'; }
 elseif (is_year()) { echo"<li>Arquivos de "; the_time('Y'); echo'</li>'; }
 elseif (is_author()) { echo"<li>Arquivos do Autor"; echo'</li>'; }
 elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { echo "<li>Arquivos do Blog"; echo'</li>'; }
 elseif (is_search()) { echo"<li>Resultados da Busca"; echo'</li>'; }
 echo '</ul>';
}
?>

Então chame a trilha no tema com:

<?php the_breadcrumb(); ?>

Se quiser, estilize a trilha de navegação com um pouco de CSS. Cole isso no seu arquivos style.css:

#breadcrumbs{
list-style:none;
margin:10px 0;
overflow:hidden;
}

#breadcrumbs li{
float:left;
margin-right:15px;
}

#breadcrumbs .separator{
font-weight:700;
font-size:20px;
color:#999;
}

Paginação

WP-Pagenavi e similares

Temas com paginação numérica são cada vez mais comuns, mas se você ainda usa plugins pra ter isso, esqueça. Cole isso em seu arquivo functions.php:

function numeric_posts_nav() {
if( is_singular() ) return;
global $wp_query;
/** Para a execução se há só 1 página */
 if( $wp_query->max_num_pages <= 1 )
 return;
$paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1;
 $max = intval( $wp_query->max_num_pages );
/** Adiciona página atual ao array */
 if ( $paged >= 1 )
 $links[] = $paged;
/** Adiciona próximas páginas ao array */
 if ( $paged >= 3 ) {
 $links[] = $paged - 1;
 $links[] = $paged - 2;
 }
if ( ( $paged + 2 ) <= $max ) {
 $links[] = $paged + 2;
 $links[] = $paged + 1;
 }
echo '<div class="navigation"><ul>' . "n";
/** Link para post anterior */
 if ( get_previous_posts_link() )
 printf( '<li>%s</li>' . "n", get_previous_posts_link() );
/** Link para primeira página, + reticencias se preciso */
 if ( ! in_array( 1, $links ) ) {
 $class = 1 == $paged ? ' class="active"' : '';
printf( '<li%s><a href="%s">%s</a></li>' . "n", $class, esc_url( get_pagenum_link( 1 ) ), '1' );
if ( ! in_array( 2, $links ) )
 echo '<li>…</li>';
 }
/** Link para página atual, + 2 páginas em cada direção se preciso */
 sort( $links );
 foreach ( (array) $links as $link ) {
 $class = $paged == $link ? ' class="active"' : '';
 printf( '<li%s><a href="%s">%s</a></li>' . "n", $class, esc_url( get_pagenum_link( $link ) ), $link );
 }
/** Link para última página, + reticências se preciso */
 if ( ! in_array( $max, $links ) ) {
 if ( ! in_array( $max - 1, $links ) )
 echo '<li>…</li>' . "n";
$class = $paged == $max ? ' class="active"' : '';
 printf( '<li%s><a href="%s">%s</a></li>' . "n", $class, esc_url( get_pagenum_link( $max ) ), $max );
 }
/** Link para próximo post */
 if ( get_next_posts_link() )
 printf( '<li>%s</li>' . "n", get_next_posts_link() );
echo '</ul></div>' . "n";
}

Então no tema, na página dos arquivos (normalmente archive.php, index.php, category.php, ou qualquer outra que carregue vários posts arquivados), use isso:

<?php numeric_posts_nav(); ?>

E um pouco de estilo na style.css:

.navigation li a, .navigation li a:hover,
.navigation li.active a, .navigation li.disabled {
color: #fff;
text-decoration:none;
}
.navigation li {
display: inline;
}
.navigation li a,
.navigation li a:hover,
.navigation li.active a,
.navigation li.disabled {
background-color: #6FB7E9;
border-radius: 3px;
cursor: pointer;
padding: 12px;
padding: 0.75rem;
}
.navigation li a:hover,
.navigation li.active a {
background-color: #3C8DC5;
}

Comentários do Facebook

Facebook Comments e afins

Usar os comentários do Facebook no seu blog pode até ser um pouco mais fácil com um plugin, mas é sempre bom lembrar da questão do tempo de carregamento – menos plugins, sites mais rápidos. Já publiquei sobre a implementação aqui, se ainda não viu, leia.

Data da modificação

Last Modified e similares

Plugins para mostrar a data da última modificação no artigo? Pff, isso é feito com uma única linha de código no seu arquivo functions.php:

?>Última atualização: <?php $x = get_the_time('U'); $m = get_the_modified_time('U'); if ($m != $x) { the_modified_time('d/m/Y'); } ?>

Posts relacionados

Related Posts e similares

Exibir posts relacionados não é o fim do mundo de dificuldade, e com um pouquinho de estilo você consegue resultados idênticos aos de plugins. Insira isso onde quiser exibir os posts relacionados (dentro do loop, logo após o local em que o post é exibido é um bom lugar):

<?php $origin_post = $post;
 global $post;
 $tags = wp_get_post_tags($post->ID);
 if ($tags) {
 $tag_ids = array();
 foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
 $args=array(
 'tag__in' => $tag_ids,
 'post__not_in' => array($post->ID),
 'posts_per_page'=>3, // Quantos posts relacionados exibir?
 'caller_get_posts'=>1
 ); $my_query = new wp_query( $args );
 if( $my_query->have_posts() ) {
echo '<div id="related-posts">
 <h3 class="related-header">Veja também...</h3> <ul>';
 while( $my_query->have_posts() ) {
 $post_image_id = get_post_thumbnail_id($post_to_use->ID);
$my_query->the_post(); ?>
 <li><div class="related-item">
 <span class="related-thumb"><?php the_post_thumbnail('medium'); ?></span>
<div class="related-info">
 <h3 class="related-title"><a href="<?php the_permalink()?>" rel="bookmark nofollow" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
 <?php the_excerpt(); ?>
 </div>
</div></li>
 <? }
 echo '</ul></div>';
 }
 }
 $post = $origin_post;
 wp_reset_query(); ?>

Isso vai te dar 3 posts relacionados (em relação às tags do post atual), com miniatura do post, título e resumo. Se quiser mostrar mais, é só alterar o número, e com CSS conseguimos mudar todo o resto. Se quiser eliminar o resumo do post, por exemplo, é só remover a linha “<?php the_excerpt(); ?>”.

Fundador do Tutoriart em 2010, é ex-instrutor de Photoshop, design web e gráfico. Em quase uma década de redação online, tem cerca de 1500 artigos publicados. Gerencia também o Memória BIT.

2 Comentários

  1. Boas dicas, concordo com praticamente todas, mas a opção de paginação pode ser melhorada.
    O WordPress já possui uma função nativa para paginação por números, mas infelizmente ninguém a conhece.

    A função a que me refiro é paginate_links()
    http://codex.wordpress.org/paginate_links

    • Verdade, é que durante tanto tempo o pessoal usou a função “externa” que acaba esquecendo essa nativa. Eu mesmo só fui conhecer há pouco tempo em um template mais moderno.

Deixe um Comentário

Pin