Blog

15+ truques extremamente úteis para functions.php

Quem já tem certa familiaridade com WordPress provavelmente já se deparou com o functions.php, o arquivo de funções para templates. Nele é possível usar diversos recursos “escondidos” ou desativados por padrão, tais como menus, miniatura de posts, widgets, entre outros. É quase como um plugin para seu tema, onde pode-se modificar funções já existentes sem alterar o núcleo.

Listamos mais de 15 truques para se usar no functions.php e estender as funções de seu tema.

Nota: algumas dicas são voltadas para usuários com conhecimento básico em PHP.

1. Remover a barra administrativa

A barra de administração do WordPress traz vários atalhos excelentes, porém, algumas vezes pode mais atrapalhar que ajudar, ou então você simplesmente precisa escondê-la do front-end para usuários logados. Para este efeito, basta adicionar a seguinte linha no functions.php de seu tema:

add_filter('show_admin_bar', '__return_false');

2. Adicionar código Google Analytics

Para adicionar o código de rastreio do Analytics, a seguinte função faz este trabalho.  Passando como parâmetro o wp_footer, o código é adicionado no rodapé do seu site.

add_action('wp_footer', 'bl_analytics');
function bl_analytics() { ?>
  // cole aqui seu código Analytics
<?php }

3. Esconder a versão do WordPress

Todos os sites desenvolvidos com WordPress recebem uma metatag chamada “generator” em seu head, tendo como conteúdo a versão da instalação. Esconder a versão que está sendo utilizada é uma das muitas medidas de segurança que devem ser tomadas. O seguinte trecho permite ocultar tal informação:

remove_action('wp_head', 'wp_generator');

4. Adicione um favicon para seu site

Uma maneira simples e eficiente de adicionar o famoso favicon, o ícone que aparece na aba do navegador, é adicionando o seguinte trecho no functions.php que, usando o parâmetro wp_head, irá adicionar o link para a imagem do ícone.

Nota: substitua “LINK PARA IMAGEM” pelo link do seu ícone.

add_action('wp_head', 'bl_favicon');
function bl_favicon() {
  echo '<link rel="shortcut icon" type="image/x-icon" href=" LINK PARA IMAGEM " />';
}

5. Alterar o Gravatar padrão

O WordPress possibilita alterar os avatares usados em comentários de pessoas não-logadas ou que não possuem e-mail associado ao Gravatar através do painel administrativo, porém, oferece algumas opções apenas. Para adicionar uma imagem personalizada, basta adicionar o seguinte código no functions.php.

Obs.: Substitua “LINK PARA IMAGEM” pelo link relativo ao avatar que deseja utilizar.

add_filter( 'avatar_defaults', 'bl_avatar' );
function bl_avatar($avatar_defaults) {
  $novo_avatar = ' LINK PARA IMAGEM ';
  $avatar_defaults[$novo_avatar] = "BlogLite";
    return $avatar_defaults;
}

6. Alterar o rodapé da administração

Use o código abaixo no functions.php do seu tema para modificar o texto “Obrigado por criar com WordPress.” localizado no rodapé do painel administrativo.

add_filter('admin_footer_text', 'bl_admin_footer');
function bl_admin_footer() {
  echo 'Novo texto para o rodapé. Aceita tags HTML!';
}

7. Remover widgets da administração

Uma dica excelente e muito útil quando é necessário personalizar o WordPress para clientes é esconder alguns widgets do painel que serão de uso desnecessário. Adicionando o seguinte trecho no functions, podemos fazer este trabalho facilmente.

add_action('wp_dashboard_setup', 'bl_remove_admin_widgets' );
function bl_remove_admin_widgets() {
  global $wp_meta_boxes;
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_drafts']);
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
}

8. Ativar miniatura de posts

Miniaturas de posts é um recurso adicionado na versão 2.9 do WordPress. Com ela, podemos selecionar uma imagem destacada para cada post/página e então trabalhar com essa imagem no front-end. Por padrão, o recurso vem desativado, mas ativar é super simples, basta adicionar a seguinte dica no functions.php:

add_theme_support('post-thumbnails');

9. Adicionar tamanhos de miniatura personalizados

O WordPress é tão flexível que nos permite alterar praticamente tudo! Como citado na dica anterior, temos um recurso de miniatura de posts para adicionar uma imagem destacadas para cada post. Muitas vezes o tamanho desta miniatura será diferente de acordo com o local que for exibida. Com essa dica, podemos trabalhar com diferentes tamanhos. Segue:

// Definimos um nome, a largura e altura
// Sem o tipo de corte, a miniatura terá tamanho proporcional ao definido
add_image_size('tamanho-personalizado-1', 220, 180);

// Ou então definimos um nome, largura, altura e o tipo de corte
// No caso, a miniatura será cortada exatamente nos tamanhos definidos
add_image_size('tamanho-personalizado-2', 220, 180, true);

Para usar o recurso em seu tema, use o seguinte código:

if ( has_post_thumbnail() ) { 
  the_post_thumbnail('tamanho-personalizado-2'); 
}

10. Ativar suporte a menus personalizados

A versão 3.0 do WordPress trouxe um recurso super bacana e útil: suporte à menus de navegação editáveis pelo painel administrativo. Alterar menus de links se tornou uma tarefa extremamente fácil, bastando acessar o menu Aparência > Menus. Porém, este é mais um recurso desativado por padrão e que depende das funções do seu tema para funcionar. Para ativá-lo e criar 2 menus de exemplo, vamos usar o seguinte trecho:

register_nav_menus( array(
  'menu_1' => 'Meu Primeiro Menu',
  'menu_2' => 'Meu Segundo Menu'
));

11. Adicionar resumo para Páginas

Os resumos são de grande ajuda em Posts, onde podemos, em poucas palavras, prender a atenção de leitores para o conteúdo completo do post. Este recurso não vem ativado para Páginas por padrão, mas com esta dica conseguimos tal façanha.

add_action( 'init', 'bl_excerpts_pages' );
function bl_excerpts_pages() {
  add_post_type_support( 'page', 'excerpt' );
}

12. Adicionar miniatura de post ao RSS

Outra coisa que não temos por padrão são as miniatura de posts nos feeds RSS. Uma forma simples de adicionar as post thumbnails ao RSS é usando o código abaixo no functions.php:

add_filter('the_excerpt_rss', 'bl_rss_post_thumbnail');
add_filter('the_content_feed', 'bl_rss_post_thumbnail');
function bl_rss_post_thumbnail($content) {
  global $post;
  if(has_post_thumbnail($post->ID)) {
    $content = '<p>' . get_the_post_thumbnail($post->ID) . '</p>' . get_the_content();
  }
  return $content;
}

13. Alterar o link para seu Feed

Caso deseja alterar o link do feed do seu site para usar, por exemplo, o FeedBurner como padrão, basta usar esta dica no functions.php para redirecionar os acessos para o novo link:

Obs.: Substitua “NOVO LINK PARA FEED” pelo link que deseja usar.

add_filter('feed_link','bl_feed_link', 1, 2);
function bl_feed_link($output, $feed) {
  $feed_url = 'NOVO LINK PARA FEED';
  $feed_array = array('rss' => $feed_url, 'rss2' => $feed_url, 'atom' => $feed_url, 'rdf' => $feed_url, 'comments_rss2' => '');
  $feed_array[$feed] = $feed_url;
  $output = $feed_array[$feed];
  return $output;
}

14. Manipulando o conteúdo do RSS

Uma boa dica para adicionar uma mensagem ou mesmo propaganda no rodapé ou cabeçalho em todos os posts do feed de seu site é usar esta função no functions.php de seu tema. Segue:

add_filter('the_excerpt_rss', 'bl_rss_footer');
add_filter('the_content', 'bl_rss_footer');
function bl_rss_footer($content) {
  if(is_feed()) {
    $content = 'Texto antes do conteúdo. ' . $content . 'Texto após o conteúdo';
  }
  return $content;
}

15. Adicionar e remover campos do perfil de usuário

No perfil de usuário do WordPress, temos vários campos padrões da plataforma, porém, muitos desses pouco são usados. É o caso do AIM, Jabber e YIM. Sentimos falta, porém, de campos que nos permitam inserir informações de outras redes sociais como Facebook, Google+ e Twitter. Com o truque abaixo nós podemos remover estes campos não utilizados e adicionar novos.

add_filter('user_contactmethods', 'bl_profile_fields');
function bl_profile_fields($profile_fields) {
  // Adicionar novos campos
  $profile_fields['twitter']  = 'Usuário do Twitter';
  $profile_fields['facebook'] = 'URL para Facebook';
  $profile_fields['gplus']    = 'URL para Google+';

  // Remover campos existentes
  unset($profile_fields['aim']);
  unset($profile_fields['jabber']);
  unset($profile_fields['yim']);

  return $profile_fields;
}

16. Alterar o texto “Leia Mais…” dos resumos

Alguns temas para WordPress utilizam a função de resumo de posts que, nada mais é que um pequeno trecho do conteúdo de cada post exibido na página inicial — ou páginas de arquivos — com um link de “Leia mais” para que o leitor continue a ver o texto. Com a dica a seguir, podemos alterar este “Leia mais” automaticamente por outra string desejada.

add_filter( 'the_content_more_link', 'bl_read_more' );
function bl_read_more() {
  return '<a class="more-link" href="' . get_permalink() . '">Continue lendo a matéria...</a>';
}

17. Forçar uso de SSL para determinada página

Se você possui SSL ativado em seu servidor e deseja forçar determinadas páginas para usar o protocolo seguro, o seguinte código adicionado ao functions.php de seu tema ajudará. Essa função é útil para fazer com que páginas, como login, registro ou checkout de compras, usem uma camada de software que criptografa todas as informações enviadas.

Obs.: Substitua “$post_id == 25” pelo ID da página que deseja forçar o uso.

add_filter('force_ssl' , 'bl_force_ssl', 10, 3);
function bl_force_ssl( $force_ssl, $post_id = 0, $url = '' ) {
  if ( $post_id == 25 ) { // ID da página
    return true
  }
  return $force_ssl;
}

Há infinitas maneiras de usar o functions.php do seu tema para usufruir de todo o poder oferecido pelo WordPress. Se você tiver um conhecimento básico de PHP e entender os hooks da plataforma, pode criar funções para modificar tarefas da maneira que desejas. As dicas que mostrei são básicas e muito úteis dependendo do projeto.

E você, tem alguma dica legal de alteração do functions.php? Deixe seu comentário abaixo!

  1. Universo Geeks

    Estava procurando como esconder a versão do WordPress. No entanto, acabei encontrando outras excelente dicas para implementar em meu functions.php

Deixe um comentário

Hospede seu projeto em WordPress com alto desempenho