Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Copa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

46 Truques extremamente úteis para o arquivo de funções do WordPress

O arquivo de funções do WordPress, conhecido como functions.php, é uma ferramenta poderosa que vem com todos os temas do WordPress. Ele funciona como um plug-in, permitindo que você adicione códigos personalizados ao seu site com facilidade.

Usamos código personalizado em nossos sites quando um pequeno trecho de código pode ser usado. Essa versatilidade e flexibilidade do WordPress nos permitem combinar a funcionalidade de vários plug-ins de uma maneira fácil de gerenciar.

Neste artigo, compartilharemos alguns desses truques práticos e úteis para usar o arquivo de funções do WordPress, ajudando-o a obter mais do seu site WordPress.

Handy WordPress functions file tips and hacks

O que é o arquivo de funções no WordPress?

O arquivo functions.php é um arquivo de tema do WordPress que vem com todos os temas gratuitos e premium do WordPress.

Ele funciona como um plug-in e permite que os desenvolvedores de temas definam os recursos do tema. Os usuários também podem usá-lo para adicionar seus trechos de código personalizados no WordPress.

Entretanto, salvar o código personalizado em um arquivo de funções não é uma boa prática.

Se você atualizar o tema, o arquivo functions.php será substituído e você perderá os trechos de código personalizados. Não é possível desativar um snippet sem excluí-lo.

Em vez disso, recomendamos que todos usem o WPCode, um plug-in gratuito que permite inserir trechos de código em seu site do WordPress sem editar nenhum tema, plug-in ou arquivos principais do WordPress.

Por que recomendamos o WPCode?

  • Salve facilmente trechos de código personalizados sem editar nenhum arquivo principal.
  • Insira automaticamente trechos de código onde você precisar deles
  • Cada trecho de código é salvo separadamente e pode ser desativado individualmente.
  • Um mecanismo de segurança integrado desativará um trecho de código se ele causar um erro em seu site.

Como bônus, o plug-in WPCode tem uma extensa biblioteca de trechos de código pré-configurados (incluindo muitos desta lista). Você pode implementar esses trechos de código com apenas alguns cliques.

wpcode library

Dito isso, aqui está uma lista dos itens que abordaremos neste artigo. Você pode pular para aquele que lhe interessa ou simplesmente seguir adiante:

Como adicionar esses snippets de código ao seu site

Antes de começarmos, vamos ver como adicionar os trechos de código deste artigo ao seu arquivo de funções do WordPress.

1. Adicionar código personalizado ao arquivo de funções usando o WPCode (recomendado)

Primeiro, você precisa instalar e ativar o plug-in WPCode. Para obter mais detalhes, consulte nosso guia passo a passo sobre como instalar um plug-in do WordPress.

Após a ativação, vá para a página Code Snippets ” + Add Snippet. Você verá a biblioteca de códigos do WPCode com muitos trechos de código personalizados úteis já adicionados.

Add snippet

Se o seu snippet de código fizer a mesma coisa que os snippets da biblioteca, você poderá experimentar o que já foi adicionado lá.

Como alternativa, clique no link “snippet em branco” para continuar adicionando seu snippet de código personalizado.

Na próxima tela, forneça um título para seu código personalizado. Pode ser qualquer coisa que o ajude a identificar o que esse snippet de código faz.

Adding your custom code

Em seguida, você precisa escolher o “Tipo de código”. Se estiver adicionando um código que funcione no arquivo functions.php, deverá selecionar “PHP Snippet”.

Em seguida, você precisa copiar e colar seu código personalizado na caixa “Code Preview” (Visualização de código).

Por fim, você precisa definir seu snippet como “Ativo” e clicar no botão “Salvar snippet”.

Activate and save

Seu snippet salvo agora será executado como se tivesse sido adicionado ao arquivo functions.php.

Você pode repetir o processo para adicionar mais snippets quando necessário. Você também pode desativar um snippet sem excluí-lo.

2. Adicionar código personalizado diretamente ao arquivo de funções

O método WPCode é sempre melhor do que adicionar código ao arquivo de funções do tema.

No entanto, alguns usuários podem estar escrevendo código para o tema personalizado do WordPress de um cliente ou simplesmente preferir adicionar código ao arquivo functions.php.

Nesse caso, veja como adicionar código ao arquivo functions.php do tema do WordPress.

Primeiro, conecte-se ao seu site WordPress usando um cliente FTP. Depois de conectado, navegue até a pasta /wp-content/themes/your-wordpress-theme/.

Edit functions.php file

Lá você encontrará o arquivo functions.php. Basta clicar com o botão direito do mouse e selecionar para editar ou fazer download do arquivo em seu computador para edição.

Você pode editá-lo usando qualquer editor de texto simples, como o Notepad ou o TextEdit.

Em seguida, role para baixo até a parte inferior do arquivo functions.php e cole seu snippet de código lá. Você pode salvar suas alterações e carregar o arquivo functions.php atualizado na pasta do tema.

Agora você pode visitar seu site do WordPress para ver seu código personalizado em ação.

Agora, vamos dar uma olhada em 46 truques úteis diferentes para o arquivo de funções do WordPress.

1. Remover o número da versão do WordPress

Você deve sempre usar a versão mais recente do WordPress. No entanto, talvez você queira remover o número da versão do WordPress do seu site.

Basta adicionar esse trecho de código ao seu arquivo de funções ou como um novo trecho de código WPCode:

function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');

Para obter instruções detalhadas, consulte nosso guia sobre a maneira correta de remover o número da versão do WordPress.

Deseja colocar um rótulo branco em sua área de administração do WordPress? A primeira etapa é adicionar um logotipo de painel personalizado.

Primeiro, você precisará carregar seu logotipo personalizado na pasta de imagens do seu tema como custom-logo.png. Seu logotipo personalizado deve estar em uma proporção de 1:1 (uma imagem quadrada) em 16×16 pixels.

Depois disso, você pode adicionar esse código ao arquivo de funções do seu tema ou como um novo snippet do WPCode:

function wpb_custom_logo() {
echo '
<style type="text/css">
#wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {
background-image: url(' . get_bloginfo('stylesheet_directory') . '/images/custom-logo.png) !important;
background-position: 0 0;
color:rgba(0, 0, 0, 0);
}
#wpadminbar #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
background-position: 0 0;
}
</style>
';
}
//hook into the administrative header output
add_action('wp_before_admin_bar_render', 'wpb_custom_logo');

Para obter mais detalhes, consulte nosso guia sobre como adicionar um logotipo de painel personalizado no WordPress.

3. Alterar o rodapé no painel de administração do WordPress

O rodapé da área de administração do WordPress mostra a mensagem “Thank you for creating with WordPress” (Obrigado por criar com o WordPress). Você pode alterá-la para o que quiser adicionando este código:

function remove_footer_admin () {

echo 'Fueled by <a href="http://www.wordpress.org" target="_blank">WordPress</a> | WordPress Tutorials: <a href="https://www.wpbeginner.com" target="_blank">WPBeginner</a></p>';

}

add_filter('admin_footer_text', 'remove_footer_admin');

Fique à vontade para alterar o texto e os links que você deseja adicionar. Veja como ficou em nosso site de teste.

Admin footer

4. Adicionar widgets de painel personalizados no WordPress

Você provavelmente já viu os widgets que muitos plugins e temas adicionam ao painel do WordPress. Você mesmo pode adicionar um, colando o seguinte código:

add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');

function my_custom_dashboard_widgets() {
global $wp_meta_boxes;

wp_add_dashboard_widget('custom_help_widget', 'Theme Support', 'custom_dashboard_help');
}

function custom_dashboard_help() {
echo '<p>Welcome to Custom Blog Theme! Need help? Contact the developer <a href="mailto:yourusername@gmail.com">here</a>. For WordPress Tutorials visit: <a href="https://www.wpbeginner.com" target="_blank">WPBeginner</a></p>';
}

Esta é a aparência que teria:

Custom dashboard widget

Para obter detalhes, consulte nosso tutorial sobre como adicionar widgets de painel personalizados no WordPress.

5. Alterar o Gravatar padrão no WordPress

Você já viu o avatar padrão do homem misterioso nos blogs? Você pode substituí-lo facilmente por um avatar personalizado com sua própria marca.

Basta carregar a imagem que você deseja usar como avatar padrão e adicionar esse código ao seu arquivo de funções ou ao plug-in WPCode:

function wpb_custom_default_gravatar( $avatar_defaults ) {
	$myavatar = 'https://example.com/wp-content/uploads/2022/10/dummygravatar.png';
	$avatar_defaults[$myavatar] = 'Default Gravatar';
	return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'wpb_custom_default_gravatar' );

Agora você pode acessar a página Configurações ” Discussão e selecionar seu avatar padrão.

Custom default gravatar

Para obter instruções detalhadas, consulte nosso guia sobre como alterar o gravatar padrão no WordPress.

6. Data de copyright dinâmica no rodapé do WordPress

Você pode simplesmente adicionar uma data de copyright editando o modelo de rodapé em seu tema. No entanto, ela não mostrará quando seu site foi iniciado e não será alterada automaticamente no ano seguinte.

Esse código pode adicionar uma data de copyright dinâmica no rodapé do WordPress:

function wpb_copyright() {
global $wpdb;
$copyright_dates = $wpdb->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = 'publish'
");
$output = '';
if($copyright_dates) {
$copyright = "© " . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= '-' . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}

Depois de adicionar essa função, você precisará abrir o arquivo footer.php e adicionar o seguinte código onde deseja exibir a data dinâmica do copyright:

<?php echo wpb_copyright(); ?>

Essa função procura a data de sua primeira postagem e a data de sua última postagem. Em seguida, ela retorna os anos sempre que você chamar a função.

Dica: se você estiver usando o plug-in WPCode, poderá combinar os dois trechos de código. Depois disso, escolha o local “Site Wide Footer” na seção “Inserção” das configurações do snippet. Isso exibirá automaticamente a data de copyright no rodapé sem editar o arquivo footer.php do seu tema.

Add to footer using WPCode

Para obter mais detalhes, consulte nosso guia sobre como adicionar datas de copyright dinâmicas no WordPress.

7. Alterar aleatoriamente a cor do plano de fundo no WordPress

Deseja alterar aleatoriamente a cor de fundo do seu blog do WordPress a cada visita e recarga de página? Veja como fazer isso facilmente.

Primeiro, adicione esse código ao arquivo de funções do seu tema ou ao plug-in WPCode:

function wpb_bg() {
$rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
$color ='#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].
$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];

echo $color; 
} 

Em seguida, você precisará editar o arquivo header.php em seu tema. Localize a tag <body> e substitua-a por esta linha:

<body <?php body_class(); ?> style="background-color:<?php wpb_bg();?>">

Agora você pode salvar as alterações e acessar seu site para ver o código em ação.

Random background colors

Para obter mais detalhes e métodos alternativos, consulte nosso tutorial sobre como alterar aleatoriamente a cor do plano de fundo no WordPress.

8. Atualizar URLs do WordPress

Se a página de login do WordPress continuar sendo atualizada ou se você não conseguir acessar a área administrativa, será necessário atualizar os URLs do WordPress.

Uma maneira de fazer isso é usar o arquivo wp-config.php. No entanto, se você fizer isso, não poderá definir o endereço correto na página de configurações. Os campos URL do WordPress e URL do site ficarão bloqueados e não poderão ser editados.

Em vez disso, basta adicionar este código ao seu arquivo de funções para corrigir o problema:

update_option( 'siteurl', 'https://example.com' );
update_option( 'home', 'https://example.com' );

Não se esqueça de substituir example.com por seu nome de domínio.

Depois de fazer login, você pode ir para a página Configurações na área de administração do WordPress e definir os URLs.

Depois disso, você deve remover o código que adicionou ao arquivo de funções ou ao WPCode. Caso contrário, ele continuará atualizando esses URLs sempre que seu site for acessado.

9. Adicionar tamanhos adicionais de imagem no WordPress

O WordPress gera automaticamente vários tamanhos de imagem quando você carrega uma imagem. Você também pode criar tamanhos de imagem adicionais para usar em seu tema.

Basta adicionar esse código ao arquivo de funções do seu tema ou como um snippet do WPCode:

add_image_size( 'sidebar-thumb', 120, 120, true ); // Hard Crop Mode
add_image_size( 'homepage-thumb', 220, 180 ); // Soft Crop Mode
add_image_size( 'singlepost-thumb', 590, 9999 ); // Unlimited Height Mode

Esse código cria três novos tamanhos de imagem de tamanhos diferentes. Sinta-se à vontade para ajustar o código para atender às suas necessidades.

Você pode exibir um tamanho de imagem em qualquer lugar do tema usando esse código:

<?php the_post_thumbnail( 'homepage-thumb' ); ?>

Para obter instruções detalhadas, consulte nosso guia sobre como criar tamanhos de imagem adicionais no WordPress.

10. Adicionar novos menus de navegação ao tema

O WordPress permite que os desenvolvedores de temas definam menus de navegação e depois os exibam.

Você pode adicionar esse código ao arquivo de funções do seu tema ou como um novo snippet de WPCode para definir um novo local de menu em seu tema:

function wpb_custom_new_menu() {
  register_nav_menu('my-custom-menu',__( 'My Custom Menu' ));
}
add_action( 'init', 'wpb_custom_new_menu' );

Agora você pode ir para Appearance ” Menus no painel do WordPress e ver “My Custom Menu” como a opção de localização do tema.

Custom menu location

Observação: Esse código também funcionará com temas de blocos com o recurso de edição completa do site. Ao adicioná-lo, a tela Menus será ativada em Appearance.

Agora você precisa adicionar esse código ao tema onde deseja exibir o menu de navegação:

 <?php
wp_nav_menu( array( 
    'theme_location' => 'my-custom-menu', 
    'container_class' => 'custom-menu-class' ) ); 
?>

Para obter instruções detalhadas, consulte nosso guia sobre como adicionar menus de navegação personalizados em temas do WordPress.

11. Adicionar campos de perfil de autor

Deseja adicionar campos extras aos seus perfis de autor no WordPress? Você pode fazer isso facilmente adicionando esse código ao seu arquivo de funções ou como um novo snippet do WPCode:

function wpb_new_contactmethods( $contactmethods ) {
// Add Twitter
$contactmethods['twitter'] = 'Twitter';
//add Facebook
$contactmethods['facebook'] = 'Facebook';

return $contactmethods;
}
add_filter('user_contactmethods','wpb_new_contactmethods',10,1);

Esse código adicionará campos do Twitter e do Facebook aos perfis de usuário no WordPress.

New profile fields

Agora você pode exibir esses campos em seu modelo de autor da seguinte forma:

<?php echo get_the_author_meta('twitter') ?>

Você também pode consultar nosso guia sobre como adicionar campos adicionais de perfil de usuário no registro do WordPress.

12. Adição de áreas preparadas para widgets ou barras laterais em temas do WordPress

Esse é um dos snippets de código mais usados, e muitos desenvolvedores já sabem como adicionar áreas prontas para widgets ou barras laterais aos temas do WordPress. Mas ele merece estar nesta lista para as pessoas que não sabem.

Você pode colar o código a seguir em seu arquivo functions.php ou como um novo snippet do WPCode:

// Register Sidebars
function custom_sidebars() {

	$args = array(
		'id'            => 'custom_sidebar',
		'name'          => __( 'Custom Widget Area', 'text_domain' ),
		'description'   => __( 'A custom widget area', 'text_domain' ),
		'before_title'  => '<h3 class="widget-title">',
		'after_title'   => '</h3>',
		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
		'after_widget'  => '</aside>',
	);
	register_sidebar( $args );

}
add_action( 'widgets_init', 'custom_sidebars' );

Observação: Esse código também funcionará com temas de blocos com o recurso de edição completa do site. Ao adicioná-lo, a tela Widgets será ativada em Appearance.

Agora você pode visitar a página Appearance ” Widgets e ver sua nova área de widgets personalizados.

Custom widget area

Para exibir essa barra lateral ou área pronta para widget em seu site, você precisará adicionar o seguinte código no modelo em que deseja exibi-la:

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('custom_sidebar') ) : ?>
<!–Default sidebar info goes here–>
<?php endif; ?>

Para obter mais detalhes, consulte nosso guia sobre como adicionar áreas e barras laterais dinâmicas prontas para widgets no WordPress.

13. Manipular o rodapé do RSS Feed

Você já viu blogs que adicionam anúncios em seus feeds RSS abaixo de cada publicação? Você pode fazer isso facilmente com uma função simples. Basta colar o código a seguir:

function wpbeginner_postrss($content) {
if(is_feed()){
$content = 'This post was written by Syed Balkhi '.$content.'Check out WPBeginner';
}
return $content;
}
add_filter('the_excerpt_rss', 'wpbeginner_postrss');
add_filter('the_content', 'wpbeginner_postrss');

Para obter mais informações, consulte nosso guia sobre como adicionar conteúdo e manipular completamente seus feeds RSS.

14. Adicionar imagens em destaque a RSS Feeds

A miniatura da postagem ou as imagens em destaque geralmente são exibidas apenas no design do site. Você pode estender facilmente essa funcionalidade ao seu feed RSS com o seguinte código:

function 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;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');

Para obter mais detalhes, consulte nosso guia sobre como adicionar miniaturas de postagens ao seu feed RSS do WordPress.

15. Ocultar erros de login no WordPress

Os hackers podem usar os erros de login para adivinhar se eles digitaram o nome de usuário ou a senha errada. Ao ocultar os erros de login no WordPress, você pode tornar sua área de login e o site do WordPress mais seguros.

Basta adicionar o código a seguir ao arquivo de funções do seu tema ou como um novo snippet do WPCode:

function no_wordpress_errors(){
  return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

Agora, os usuários verão uma mensagem genérica quando digitarem um nome de usuário ou senha incorretos.

Custom login errors

Para obter mais informações, consulte nosso tutorial sobre como desativar as dicas de login nas mensagens de erro do WordPress.

16. Desativar o login por e-mail no WordPress

O WordPress permite que os usuários façam login com seu nome de usuário ou endereço de e-mail. Você pode desativar facilmente o login por e-mail no WordPress adicionando esse código ao seu arquivo de funções ou como um novo snippet WPCode:

remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );

Para obter mais informações, consulte nosso guia sobre como desativar o recurso de login por e-mail no WordPress.

17. Desativar o recurso de pesquisa no WordPress

Se quiser desativar o recurso de pesquisa do seu site WordPress, basta adicionar esse código ao seu arquivo de funções ou em um novo snippet WPCode:

function wpb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
if ( $error == true )
$query->is_404 = true;
}}

Esse código simplesmente desativa a consulta de pesquisa, modificando-a e retornando um erro 404 em vez de resultados de pesquisa.

Para obter mais informações, consulte nosso tutorial sobre como desativar o recurso de pesquisa do WordPress.

Dica profissional: em vez de desistir da pesquisa no WordPress, recomendamos que você experimente o SearchWP. Ele é o melhor plug-in de pesquisa do WordPress no mercado que permite adicionar um recurso de pesquisa avançado e personalizável ao seu site.

18. Atrasar publicações no RSS Feed

Às vezes, você pode publicar um artigo com um erro gramatical ou de ortografia.

O erro entra em vigor e é distribuído aos assinantes do seu feed RSS. Se você tiver assinaturas de e-mail em seu blog do WordPress, esses assinantes também receberão uma notificação.

Basta adicionar esse código ao arquivo de funções do seu tema ou como um novo snippet de WPCode para atrasar as publicações em seu feed RSS:

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

Neste código, usamos 10 minutos como $wait ou tempo de atraso. Sinta-se à vontade para alterar esse valor para qualquer número de minutos que desejar.

Para obter um método de plug-in e mais informações, consulte nosso guia detalhado sobre como atrasar a exibição de postagens no feed RSS do WordPress.

19. Alterar o texto de Leia Mais para trechos no WordPress

Deseja alterar o texto que aparece após o trecho em suas postagens? Basta adicionar esse código ao arquivo de funções do seu tema ou como um novo snippet de WPCode:

function modify_read_more_link() {
    return '<a class="more-link" href="' . get_permalink() . '">Your Read More Link Text</a>';
}
add_filter( 'the_content_more_link', 'modify_read_more_link' );

20. Desativar feeds RSS no WordPress

Nem todos os sites precisam de feeds RSS. Se quiser desativar os feeds RSS em seu site WordPress, adicione esse código ao arquivo de funções do seu tema ou como um novo snippet WPCode:

function new_excerpt_more($more) {
 global $post;
 return '<a class="moretag" 
 href="'. get_permalink($post->ID) . '">Your Read More Link Text</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');

Para obter mais informações sobre um método de plug-in, consulte nosso guia sobre como desativar os feeds RSS no WordPress.

21. Alterar o comprimento do trecho no WordPress

O WordPress limita o tamanho dos trechos a 55 palavras. Você pode adicionar esse código ao seu arquivo de funções ou como um novo snippet de WPCode se precisar alterar isso:

function new_excerpt_length($length) {
return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');

Basta alterar 100 para o número de palavras que você deseja mostrar nos trechos.

Para métodos alternativos, consulte nosso guia sobre como personalizar trechos do WordPress (sem necessidade de codificação).

22. Adicionar um usuário administrador no WordPress

Se você esqueceu a senha e o e-mail do WordPress, poderá adicionar um usuário administrador adicionando esse código ao arquivo de funções do seu tema usando um cliente FTP:

function wpb_admin_account(){
$user = 'Username';
$pass = 'Password';
$email = 'email@domain.com';
if ( !username_exists( $user )  && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
} }
add_action('init','wpb_admin_account');

Não se esqueça de preencher os campos de nome de usuário, senha e e-mail.

Importante: Depois de fazer login no site do WordPress, não se esqueça de excluir o código do arquivo de funções.

Para saber mais sobre esse tópico, dê uma olhada em nosso tutorial sobre como adicionar um usuário administrador no WordPress usando FTP.

23. Desativar o alternador de idiomas na página de login

Se você tiver um site multilíngue, o WordPress exibirá um seletor de idioma na página de login. Você pode desativá-lo facilmente adicionando o seguinte código ao seu arquivo functions.php ou como um novo snippet WPCode:

add_filter( 'login_display_language_dropdown', '__return_false' );

24. Mostrar o número total de usuários registrados no WordPress

Deseja mostrar o número total de usuários registrados no seu site WordPress? Basta adicionar esse código ao arquivo de funções do seu tema ou como um novo snippet WPCode:

function wpb_user_count() {
$usercount = count_users();
$result = $usercount['total_users'];
return $result;
}
// Creating a shortcode to display user count
add_shortcode('user_count', 'wpb_user_count');

Esse código cria um shortcode que permite exibir o número total de usuários registrados em seu site.

Agora, basta adicionar o shortcode [user_count] ao seu post ou página em que deseja mostrar o número total de usuários.

Para obter mais informações e um método de plug-in, consulte nosso tutorial sobre como exibir o número total de usuários registrados no WordPress.

25. Excluir categorias específicas do RSS Feed

Deseja excluir categorias específicas de seu feed RSS do WordPress? Você pode adicionar esse código ao arquivo de funções do seu tema ou como um novo snippet do WPCode:

function exclude_category($query) {
	if ( $query->is_feed ) {
		$query->set('cat', '-5, -2, -3');
	}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');

26. Desativar links de URL em comentários do WordPress

Por padrão, o WordPress converte um URL em um link clicável nos comentários.

Você pode interromper isso adicionando o seguinte código ao seu arquivo de funções ou como um novo snippet do WPCode:

remove_filter( 'comment_text', 'make_clickable', 9 );

Para obter detalhes, consulte nosso artigo sobre como desativar o autolinking nos comentários do WordPress.

27. Adicionar classes CSS pares e ímpares aos posts do WordPress

Você já deve ter visto temas do WordPress usando uma classe par ou ímpar para os comentários do WordPress. Isso ajuda os usuários a visualizar onde um comentário termina e o próximo começa.

Você pode usar a mesma técnica para suas postagens no WordPress. Ela tem uma aparência esteticamente agradável e ajuda os usuários a examinar rapidamente as páginas com muito conteúdo.

Basta adicionar esse código ao arquivo de funções do seu tema:

function oddeven_post_class ( $classes ) {
   global $current_class;
   $classes[] = $current_class;
   $current_class = ($current_class == 'odd') ? 'even' : 'odd';
   return $classes;
}
add_filter ( 'post_class' , 'oddeven_post_class' );
global $current_class;
$current_class = 'odd';

Esse código simplesmente adiciona uma classe par ou ímpar às postagens do WordPress. Agora você pode adicionar CSS personalizado para estilizá-los de forma diferente.

Aqui estão alguns exemplos de código para ajudá-lo a começar:

.even {
background:#f0f8ff;
}
.odd {
 background:#f4f4fb;
}

O resultado final será parecido com o seguinte:

Alternating background colors

Precisa de instruções mais detalhadas? Dê uma olhada em nosso tutorial sobre como adicionar classes pares/ímpares às suas postagens em temas do WordPress.

28. Adicionar tipos de arquivos adicionais para serem carregados no WordPress

Por padrão, o WordPress permite que você faça upload de um número limitado dos tipos de arquivos mais usados. No entanto, você pode estendê-lo para permitir outros tipos de arquivos.

Basta adicionar este código ao arquivo de funções do seu tema:

function my_myme_types($mime_types){
    $mime_types['svg'] = 'image/svg+xml'; //Adding svg extension
    $mime_types['psd'] = 'image/vnd.adobe.photoshop'; //Adding photoshop files
    return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);

Esse código permite que você carregue arquivos SVG e PSD no WordPress.

Você precisará encontrar os tipos de mime para os tipos de arquivo que deseja permitir e usá-los no código.

Para saber mais sobre esse tópico, confira nosso tutorial sobre como adicionar tipos de arquivos adicionais para serem carregados no WordPress.

Por padrão, o WordPress usa um endereço de e-mail inexistente (wordpress@yourdomain.com) para enviar e-mails de saída.

Esse endereço de e-mail pode ser sinalizado como spam pelos provedores de serviços de e-mail.

Usar o plug-in WP Mail SMTP é a maneira correta de corrigir isso.

WP Mail SMTP

Ele corrige problemas de capacidade de entrega de e-mail e permite que você escolha um endereço de e-mail real para enviar seus e-mails do WordPress.

Para saber mais, consulte nosso guia sobre como corrigir o problema do WordPress que não está enviando e-mails.

Por outro lado, se você quiser mudar rapidamente para um endereço de e-mail real, poderá adicionar o seguinte código ao seu arquivo de funções ou como um novo snippet do WPCode:

// Function to change email address
function wpb_sender_email( $original_email_address ) {
    return 'tim.smith@example.com';
}
 
// Function to change sender name
function wpb_sender_name( $original_email_from ) {
    return 'Tim Smith';
}
 
// Hooking up our functions to WordPress filters 
add_filter( 'wp_mail_from', 'wpb_sender_email' );
add_filter( 'wp_mail_from_name', 'wpb_sender_name' );

Não se esqueça de substituir o endereço de e-mail e o nome por suas próprias informações.

O problema com esse método é que o WordPress ainda está usando a função mail() para enviar e-mails, e é mais provável que esses e-mails acabem em spam.

Para obter alternativas melhores, consulte nosso tutorial sobre como alterar o nome do remetente nos e-mails de saída do WordPress.

30. Adicionar uma caixa de informações do autor nos posts do WordPress

Se você administra um site com vários autores e deseja exibir biografias de autores no final de suas postagens, pode tentar esse método.

Comece adicionando esse código ao seu arquivo de funções ou como um novo snippet do WPCode:

function wpb_author_info_box( $content ) {

global $post;

// Detect if it is a single post with a post author
if ( is_single() && isset( $post->post_author ) ) {

// Get author's display name
$display_name = get_the_author_meta( 'display_name', $post->post_author );

// If display name is not available then use nickname as display name
if ( empty( $display_name ) )
$display_name = get_the_author_meta( 'nickname', $post->post_author );

// Get author's biographical information or description
$user_description = get_the_author_meta( 'user_description', $post->post_author );

// Get author's website URL
$user_website = get_the_author_meta('url', $post->post_author);

// Get link to the author archive page
$user_posts = get_author_posts_url( get_the_author_meta( 'ID' , $post->post_author));
	
// Get User Gravatar
$user_gravatar =  get_avatar( get_the_author_meta( 'ID' , $post->post_author) , 90 );

if ( ! empty( $display_name ) )

$author_details = '<p class="author_name">About ' . $display_name . '</p>';

if ( ! empty( $user_description ) )
// Author avatar and bio will be displayed if author has filled in description. 

$author_details .= '<p class="author_details">' . $user_gravatar . nl2br( $user_description ). '</p>';

$author_details .= '<p class="author_links"><a href="'. $user_posts .'">View all posts by ' . $display_name . '</a>';  

// Check if author has a website in their profile
if ( ! empty( $user_website ) ) {

// Display author website link
$author_details .= ' | <a href="' . $user_website .'" target="_blank" rel="nofollow noopener">Website</a></p>';

} else {
// if there is no author website then just close the paragraph
$author_details .= '</p>';
}

// Pass all this info to post content
$content = $content . '<footer class="author_bio_section" >' . $author_details . '</footer>';
}
return $content;
}

// Add our function to the post content filter
add_action( 'the_content', 'wpb_author_info_box' );

// Allow HTML in author bio section
remove_filter('pre_user_description', 'wp_filter_kses');

Em seguida, você precisará adicionar algumas CSS personalizadas para melhorar a aparência.

Você pode usar esse exemplo de CSS como ponto de partida:

.author_bio_section{
background: none repeat scroll 0 0 #F5F5F5;
padding: 15px;
border: 1px solid #ccc;
}

.author_name{
font-size:16px;
font-weight: bold;
}

.author_details img {
border: 1px solid #D8D8D8;
border-radius: 50%;
float: left;
margin: 0 10px 10px 0;
}

Esta é a aparência de sua caixa de autor:

Author bio box

Para obter um método de plug-in e instruções mais detalhadas, consulte nosso artigo sobre como adicionar uma caixa de informações do autor em publicações do WordPress.

31. Desativar o XML-RPC no WordPress

O XML-RPC é um método que permite que aplicativos de terceiros se comuniquem remotamente com seu site WordPress. Isso pode causar problemas de segurança e pode ser explorado por hackers.

Para desativar o XML-RPC no WordPress, adicione o seguinte código ao seu arquivo de funções ou como um novo snippet do WPCode:

add_filter('xmlrpc_enabled', '__return_false');

Você pode ler nosso artigo sobre como desativar o XML-RPC no WordPress para obter mais informações.

32. Vincular automaticamente imagens em destaque a publicações

Se o seu tema do WordPress não vincula automaticamente as imagens em destaque a artigos completos, você pode tentar este método.

Basta adicionar esse código ao arquivo de funções do seu tema ou como um novo snippet de WPCode:

function wpb_autolink_featured_images( $html, $post_id, $post_image_id ) {

If (! is_singular()) { 

$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_the_title( $post_id ) ) . '">' . $html . '</a>';
return $html;

} else { 

return $html;

}

}
add_filter( 'post_thumbnail_html', 'wpb_autolink_featured_images', 10, 3 );

Talvez você queira ler nosso artigo sobre como vincular automaticamente imagens em destaque a postagens no WordPress.

33. Desativar o Block Editor no WordPress

O WordPress usa um editor moderno e intuitivo para escrever conteúdo e editar seu site. Esse editor usa blocos para conteúdo e elementos de layout comumente usados, por isso é chamado de Block Editor.

No entanto, talvez seja necessário usar o Editor Clássico mais antigo em alguns casos de uso.

A maneira mais fácil de desativar o editor de blocos é usar o plug-in Classic Editor. Entretanto, se não quiser usar um plug-in separado, basta adicionar o código a seguir ao seu arquivo de funções ou como um novo snippet do WPCode:

add_filter('gutenberg_can_edit_post', '__return_false', 5);
add_filter('use_block_editor_for_post', '__return_false', 5);

Para obter mais detalhes, consulte nosso tutorial sobre como desativar o Block Editor e usar o Classic Editor.

34. Desativar widgets de bloco no WordPress

O WordPress mudou dos widgets clássicos para os widgets de bloco no WordPress 5.8. Os novos widgets de bloco são mais fáceis de usar e oferecem mais controle de design do que os widgets clássicos.

No entanto, alguns usuários ainda podem querer usar widgets clássicos. Nesse caso, você pode usar o código a seguir no arquivo de funções do seu tema ou como um novo snippet do WPCode:

add_filter( 'use_widgets_block_editor', '__return_false' );

Para obter mais detalhes, consulte nosso artigo sobre como desativar os blocos de widgets (restaurar widgets clássicos).

35. Exibir a data da última atualização no WordPress

Quando os visitantes visualizam um post ou uma página em seu blog do WordPress, o tema do WordPress mostrará a data em que o post foi publicado. Isso é bom para a maioria dos blogs e sites estáticos.

No entanto, o WordPress também é usado por sites em que artigos antigos são atualizados regularmente. Nessas publicações, é essencial exibir a data e a hora em que a postagem foi modificada pela última vez.

Last updated date

Você pode mostrar a data da última atualização usando o seguinte código no arquivo de funções do seu tema ou como um novo snippet do WPCode:

$u_time          = get_the_time( 'U' );
$u_modified_time = get_the_modified_time( 'U' );
// Only display modified date if 24hrs have passed since the post was published.
if ( $u_modified_time >= $u_time + 86400 ) {

	$updated_date = get_the_modified_time( 'F jS, Y' );
	$updated_time = get_the_modified_time( 'h:i a' );

	$updated = '<p class="last-updated">';

	$updated .= sprintf(
	// Translators: Placeholders get replaced with the date and time when the post was modified.
		esc_html__( 'Last updated on %1$s at %2$s' ),
		$updated_date,
		$updated_time
	);
	$updated .= '</p>';

	echo wp_kses_post( $updated );
}

Para obter métodos alternativos e mais detalhes, consulte nosso guia sobre como exibir a data da última atualização no WordPress.

36. Use nomes de arquivos em letras minúsculas para uploads

Se você tiver um site com vários autores, os autores poderão fazer upload de imagens com nomes de arquivos em letras maiúsculas e minúsculas.

A adição do código a seguir garante que todos os nomes de arquivos estejam em letras minúsculas:

add_filter( 'sanitize_file_name', 'mb_strtolower' );

Observação: O código não alterará os nomes de arquivos para uploads existentes. Para obter métodos alternativos, consulte nosso tutorial sobre como renomear imagens e arquivos de mídia no WordPress.

37. Desativar a barra de administração do WordPress no front-end

Por padrão, o WordPress exibe a barra de administração na parte superior quando um usuário conectado visualiza seu site.

É possível desativar a barra de administração para todos os usuários, exceto os administradores do site. Basta adicionar o seguinte código ao seu arquivo de funções ou como um novo snippet de WPCode:

/* Disable WordPress Admin Bar for all users */
add_filter( 'show_admin_bar', '__return_false' );

Para obter mais detalhes, consulte nosso guia sobre como desativar a barra de administração do WordPress para todos os usuários, exceto os administradores.

38. Alterar o texto do Howdy Admin na área de administração

O WordPress exibe uma saudação “Howdy Admin” no painel do WordPress. “Admin” é substituído pelo nome do usuário conectado.

Howdy greeting

Você pode alterar a saudação padrão para sua própria saudação adicionando o seguinte código em seu arquivo de funções ou como um novo snippet do WPCode:

function wpcode_snippet_replace_howdy( $wp_admin_bar ) {

	// Edit the line below to set what you want the admin bar to display intead of "Howdy,".
	$new_howdy = 'Welcome,';

	$my_account = $wp_admin_bar->get_node( 'my-account' );
	$wp_admin_bar->add_node(
		array(
			'id'    => 'my-account',
			'title' => str_replace( 'Howdy,', $new_howdy, $my_account->title ),
		)
	);
}

add_filter( 'admin_bar_menu', 'wpcode_snippet_replace_howdy', 25 );

Para obter mais detalhes, consulte nosso artigo sobre como alterar a mensagem “Howdy Admin” no WordPress.

39. Desativar a edição de código no Block Editor

O editor de blocos permite que você alterne para o Editor de código. Isso é útil se você precisar adicionar algum código HTML manualmente.

No entanto, talvez você queira manter esse recurso limitado aos administradores do site.

Para isso, você pode adicionar o seguinte código ao seu arquivo de funções ou como um snippet do WPCode:

add_filter( 'block_editor_settings_all', function ( $settings ) {
	
	$settings['codeEditingEnabled'] = current_user_can( 'manage_options' );

	return $settings;
} );

40. Desativar o editor de arquivos de plug-in/tema

O WordPress vem com um editor interno no qual você pode editar arquivos de plugin. Você pode vê-lo acessando a página Plugins ” Plugin File Editor.

Plugin file editor in WordPress

Da mesma forma, o WordPress também inclui um editor de arquivos para temas clássicos em Appearance ” Theme File Editor.

Observação: Se você usar um tema de bloco, o editor de arquivos de tema não estará visível.

Theme file editor

Não recomendamos o uso desses editores para fazer alterações em seu tema ou plug-in. Um pequeno erro no código pode tornar seu site inacessível a todos os usuários.

Para desativar o editor de plugin/tema, adicione o seguinte código ao seu arquivo de funções ou como um snippet do WPCode:

// Disable the Plugin and Theme Editor
if ( ! defined( 'DISALLOW_FILE_EDIT' ) ) {
	define( 'DISALLOW_FILE_EDIT', true );
}

Para obter mais detalhes, consulte nosso tutorial sobre como desativar o editor de plugin/tema no WordPress.

41. Desativar e-mails de notificação de novos usuários

Por padrão, o WordPress envia uma notificação por e-mail quando um novo usuário entra no seu site WordPress.

Se você administra um site de associação do WordPress ou exige que os usuários se inscrevam, receberá uma notificação sempre que um usuário entrar no seu site.

Para desativar essas notificações, você pode adicionar o seguinte ao seu arquivo de funções ou como um novo snippet do WPCode:

function wpcode_send_new_user_notifications( $user_id, $notify = 'user' ) {
	if ( empty( $notify ) || 'admin' === $notify ) {
		return;
	} elseif ( 'both' === $notify ) {
		// Send new users the email but not the admin.
		$notify = 'user';
	}
	wp_send_new_user_notifications( $user_id, $notify );
}

add_action(
	'init',
	function () {
		// Disable default email notifications.
		remove_action( 'register_new_user', 'wp_send_new_user_notifications' );
		remove_action( 'edit_user_created_user', 'wp_send_new_user_notifications' );

		// Replace with custom function that only sends to user.
		add_action( 'register_new_user', 'wpcode_send_new_user_notifications' );
		add_action( 'edit_user_created_user', 'wpcode_send_new_user_notifications', 10, 2 );
	}
);

Para obter mais detalhes, consulte nosso tutorial sobre como desativar as notificações de e-mail de novos usuários no WordPress.

42. Desativar notificações automáticas de atualização por e-mail

Ocasionalmente, o WordPress pode instalar automaticamente atualizações de segurança e manutenção ou atualizar um plug-in com uma vulnerabilidade crítica.

Ele envia uma notificação automática por e-mail de atualização após cada atualização. Se você gerencia vários sites WordPress, poderá receber vários desses e-mails.

Você pode adicionar esse código ao seu arquivo de funções ou como um novo snippet do WPCode para desativar essas notificações por e-mail:

/ Disable auto-update emails.
add_filter( 'auto_core_update_send_email', '__return_false' );

// Disable auto-update emails for plugins.
add_filter( 'auto_plugin_update_send_email', '__return_false' );

// Disable auto-update emails for themes.
add_filter( 'auto_theme_update_send_email', '__return_false' );

Para saber mais, consulte nosso artigo sobre como desativar os e-mails de atualização automática no WordPress.

43. Adicionar um link para duplicar facilmente uma postagem

Já desejou uma maneira mais fácil de copiar todo o conteúdo de uma postagem rapidamente para edição sem tocar na postagem publicada?

O trecho de código a seguir adicionará uma opção para duplicar facilmente uma postagem com todo o seu conteúdo:

// Add duplicate button to post/page list of actions.
add_filter( 'post_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );
add_filter( 'page_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );

// Let's make sure the function doesn't already exist.
if ( ! function_exists( 'wpcode_snippet_duplicate_post_link' ) ) {
	/**
	 * @param array   $actions The actions added as links to the admin.
	 * @param WP_Post $post The post object.
	 *
	 * @return array
	 */
	function wpcode_snippet_duplicate_post_link( $actions, $post ) {

		// Don't add action if the current user can't create posts of this post type.
		$post_type_object = get_post_type_object( $post->post_type );

		if ( null === $post_type_object || ! current_user_can( $post_type_object->cap->create_posts ) ) {
			return $actions;
		}


		$url = wp_nonce_url(
			add_query_arg(
				array(
					'action'  => 'wpcode_snippet_duplicate_post',
					'post_id' => $post->ID,
				),
				'admin.php'
			),
			'wpcode_duplicate_post_' . $post->ID,
			'wpcode_duplicate_nonce'
		);

		$actions['wpcode_duplicate'] = '<a href="' . $url . '" title="Duplicate item" rel="permalink">Duplicate</a>';

		return $actions;
	}
}

/**
 * Handle the custom action when clicking the button we added above.
 */
add_action( 'admin_action_wpcode_snippet_duplicate_post', function () {

	if ( empty( $_GET['post_id'] ) ) {
		wp_die( 'No post id set for the duplicate action.' );
	}

	$post_id = absint( $_GET['post_id'] );

	// Check the nonce specific to the post we are duplicating.
	if ( ! isset( $_GET['wpcode_duplicate_nonce'] ) || ! wp_verify_nonce( $_GET['wpcode_duplicate_nonce'], 'wpcode_duplicate_post_' . $post_id ) ) {
		// Display a message if the nonce is invalid, may it expired.
		wp_die( 'The link you followed has expired, please try again.' );
	}

	// Load the post we want to duplicate.
	$post = get_post( $post_id );

	// Create a new post data array from the post loaded.
	if ( $post ) {
		$current_user = wp_get_current_user();
		$new_post     = array(
			'comment_status' => $post->comment_status,
			'menu_order'     => $post->menu_order,
			'ping_status'    => $post->ping_status,
			'post_author'    => $current_user->ID,
			'post_content'   => $post->post_content,
			'post_excerpt'   => $post->post_excerpt,
			'post_name'      => $post->post_name,
			'post_parent'    => $post->post_parent,
			'post_password'  => $post->post_password,
			'post_status'    => 'draft',
			'post_title'     => $post->post_title . ' (copy)',// Add "(copy)" to the title.
			'post_type'      => $post->post_type,
			'to_ping'        => $post->to_ping,
		);
		// Create the new post
		$duplicate_id = wp_insert_post( $new_post );
		// Copy the taxonomy terms.
		$taxonomies = get_object_taxonomies( get_post_type( $post ) );
		if ( $taxonomies ) {
			foreach ( $taxonomies as $taxonomy ) {
				$post_terms = wp_get_object_terms( $post_id, $taxonomy, array( 'fields' => 'slugs' ) );
				wp_set_object_terms( $duplicate_id, $post_terms, $taxonomy );
			}
		}
		// Copy all the custom fields.
		$post_meta = get_post_meta( $post_id );
		if ( $post_meta ) {

			foreach ( $post_meta as $meta_key => $meta_values ) {
				if ( '_wp_old_slug' === $meta_key ) { // skip old slug.
					continue;
				}
				foreach ( $meta_values as $meta_value ) {
					add_post_meta( $duplicate_id, $meta_key, $meta_value );
				}
			}
		}

		// Redirect to edit the new post.
		wp_safe_redirect(
			add_query_arg(
				array(
					'action' => 'edit',
					'post'   => $duplicate_id
				),
				admin_url( 'post.php' )
			)
		);
		exit;
	} else {
		wp_die( 'Error loading post for duplication, please try again.' );
	}
} );

Depois de adicionar o código, vá para a tela Posts ” All Posts e passe o mouse sobre o título de um post.

Você verá um novo link “Duplicate” (Duplicar) abaixo das opções.

Duplicate post link

Clicar no link criará uma cópia da postagem com todo o seu conteúdo. Você pode então trabalhar nesse rascunho.

Quando terminar, você poderá copiar e colar suas alterações na postagem original publicada e excluir a cópia.

Para obter um método de plug-in, consulte nosso artigo sobre como duplicar uma postagem ou página do WordPress.

44. Remover o painel de boas-vindas do painel de administração do WordPress

O Welcome Panel aparece no painel de administração do WordPress. Ele pode ser facilmente descartado ou ocultado clicando no botão “Opções de tela”.

Welcome panel

No entanto, se você estiver trabalhando para criar uma experiência de painel mais limpa para os usuários, talvez queira ocultá-lo permanentemente.

Adicione o seguinte código para desativá-lo para todos os usuários do seu site:

add_action(
	'admin_init',
	function () {
		remove_action( 'welcome_panel', 'wp_welcome_panel' );
	}
);

45. Adicionar uma coluna de imagem em destaque para posts na administração do WordPress

Por padrão, o WordPress só mostra imagens em destaque quando você está visualizando o site ou quando edita um post ou uma página.

O código a seguir adicionará uma nova coluna à tela Posts ” All Posts para as imagens em destaque:

add_filter( 'manage_posts_columns', function ( $columns ) {
	// You can change this to any other position by changing 'title' to the name of the column you want to put it after.
	$move_after     = 'title';
	$move_after_key = array_search( $move_after, array_keys( $columns ), true );

	$first_columns = array_slice( $columns, 0, $move_after_key + 1 );
	$last_columns  = array_slice( $columns, $move_after_key + 1 );

	return array_merge(
		$first_columns,
		array(
			'featured_image' => __( 'Featured Image' ),
		),
		$last_columns
	);
} );

add_action( 'manage_posts_custom_column', function ( $column ) {
	if ( 'featured_image' === $column ) {
		the_post_thumbnail( array( 300, 80 ) );
	}
} );

Veja como ficaria depois de adicionar o código.

Featured image column

46. Bloquear a área de administração do WordPress para todos, exceto os administradores

Alguns sites do WordPress podem precisar que os usuários registrem uma conta. Por exemplo, um site de associação do WordPress ou uma loja de comércio eletrônico.

A maioria desses plugins impedirá que esses usuários acessem a área de administração. No entanto, se você não estiver usando esse plug-in, poderá adicionar o seguinte código para impedir que todos os usuários, exceto os administradores, acessem a área de administração:

add_action( 'admin_init', function() {
	if ( ! current_user_can( 'administrator' ) ) {
       wp_redirect( home_url() );
       exit;
	}
} );

Os usuários com outras funções de usuário ainda podem fazer login em suas contas, mas depois de fazer login, eles serão redirecionados para a página inicial.

Esperamos que este artigo tenha ajudado você a aprender alguns novos truques úteis para o arquivo functions.php no WordPress. Talvez você também queira ver nosso guia sobre como exibir código no WordPress para compartilhar seus snippets facilmente e nossas escolhas de especialistas para os melhores editores de código para Mac e Windows.

Se você gostou deste artigo, inscreva-se em nosso canal do YouTube para receber tutoriais em vídeo sobre o WordPress. Você também pode nos encontrar no Twitter e no Facebook.

Divulgação: Nosso conteúdo é apoiado pelo leitor. Isso significa que, se você clicar em alguns de nossos links, poderemos receber uma comissão. Veja como o WPBeginner é financiado, por que isso é importante e como você pode nos apoiar. Aqui está nosso processo editorial.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

O kit de ferramentas definitivo WordPress

Obtenha acesso GRATUITO ao nosso kit de ferramentas - uma coleção de produtos e recursos relacionados ao WordPress que todo profissional deve ter!

Reader Interactions

114 ComentáriosDeixe uma resposta

  1. DANISH

    such a great and useful tricks.. :)

  2. Webtechideas

    Such a nice list of useful tricks. It will help both plugin and theme developers.

  3. ahmed

    In #14, isn’t that a instead of ?

  4. Mick O

    Thanks for the helpful article. I really appreciate it. Can you possibly explain why the snippet to add Google analytics (#1) code includes the php declarations. If I have an existing functions.php file that is already defined with , do I need to include the markers again in the snippet? I’m trying to add other customizations into the functions.php and it’s getting hard to keep track.

    • Editorial Staff

      It includes opening php because it is closing PHP tag to allow you to paste plain HTML Google analytics code.

      Administrador

  5. Luke Gibson

    The one about the copyright date seems a little OTT when you could simply cut and paste in © 2006- and it would do exactly the same job, just replace 2006 with whatever static start date you wish. Or am I missing something?

    • Editorial Staff

      Yes, you can definitely do that. But if you are releasing this as part of a theme meant for distribution, then you can’t do that.

      Administrador

  6. Zeeshan Arshad

    Excellent, I was done with my theme and learning but there was much left. This post saved my day and of course I learnt many things as well.

    Best Wishes!

  7. DesignSkew

    In “Add Author Profile Fields”, the function you mentioned to echo is not working.

  8. Mark

    Great set of tools. I immediately copied the guest author function as I saw it and will now disable a clumsy plugin I’ve been using. Do you have a function that will provide the post ID of the item being worked with in the editor? I’m trying to auto fill a form with media attachments for the current post but have only been able to get it to work in a custom meta-box but not in a thickbox . The thickbox returns all the media files for all the posts when I just want the current posts’s attachments.

  9. mommyblogger

    Thanks for the great Wordpress tips! I was hoping you could help me with an additional one?

    I’d like to prevent my tags/categories from spilling over onto another line by limiting the number of tags/categories that appear in the footer of my individual homepage posts. Is it possible to do this with the “the_excerpt”? I would also like the excerpt to be a “…read more” link and limit the number of characters in it. Here is the code it would need to be added to;

    $tags_list = get_the_tag_list( ”, __( ‘, ‘, ‘mummyblog’ ) ); if ( $tags_list ): ?> <li> <?php printf( __( ‘<span class=”%1$s”>Tagged</span> %2$s’, ‘mummyblog’ ), ‘entry-utility-prep entry-utility-prep-tag-links’, $tags_list ); ?> </li> <?php endif; // End if $tags_list ?>

    Thanks!

  10. SteveEBoy

    Like all the others have said below – just too good, a massive help for a newbie and very useful for learning too. Great site all round. Thanks.

  11. LambrosPower

    one of the best tutorials i read. Many important topics pointed out and for sure i didn’t know most of them since i just started wordpress custom design.

  12. Xiaozhuli

    This article is endlessly useful. I bookmarked it and often refer to it when updating my theme or trying to answer a question. Great job!

  13. Mohammad Yeasin

    You guys are just awesome. You know what, wpbegineer is the first website for which i have a separate folder in my bookmark menu. Too good for a wp begineer. youe name suits ur personality. lolz. One day i would must do something special for you. Inshallah.
    The only problem i face is related post with thumbnail. your coder are not working. vDont know what to do. Whatever, Keep up the marvelous job. Love the site wpbegineer.

  14. AA

    Great post! You obviously know a lot about wordpress coding so I’m hoping you can answer a question. How to you remove the date & time stamp from a wordpress feed-rss? I’ve looked everywhere and can’t find any information on this. I’m working on a wordpress “site” and do not have a use for the dates. I have already removed them from the posts & pages.

    Much thanks in advance!

    • Editorial Staff

      Date is NOT optional for RSS feeds. It is a MUST because that is how posts / articles are organized (reverse chronological order). You can remove the display of dates from the template, but you cannot remove them from the XML.

      Administrador

  15. Michele Welch

    Awesome post! Can’t wait to get started on the custom dashboard gravatar! Really exceptional post. :-)

  16. Phil

    Great article, I’ve bookmarked it for future reference. Just found wpbeginner by chance what a great resource, thanks!

  17. wparena

    it is really good that you compiled all impotent things at one place

  18. Mark Welburn

    Good stuff, bookmarked this already. Can see a few of these come to good use more than once. Cheers, Mark.

  19. Connor Crosby

    Just a note, be careful when you copy and paste the “end of excerpt” function. It showed a question mark instead of “…” since it was one character. I had to rewrite “…” for it show up.

  20. Martin

    Probably the best post about the use of functions.php. Thanks for the tricks and for saving our time.

  21. mark.

    I would suggest an addendum be made to Tip #3 mentioning the fact that this is not security in any way shape or form, and is definitely not an alternative to upgrading as people should.

    Hiding the version number is only beneficial to those of us who like to keep unnecessary junk out of the HEAD of your HTML document. Outside of that, it serves no purpose and should not be confused with security; to help illustrate that point: http://dd32.id.au/2010/07/31/what-version-of-wordpress-is-behind-that-website/

  22. helpin

    Could you tell me if I need to add these codes for every theme which my multi site have? Is there any there way which these codes automatically apply to the newly added themes?

    Thanks !

    • Editorial Staff

      You would have to add these to your theme’s functions.php file. So if it is a theme that is available on all networks, then only once. If there are custom themes being used on each network site, then you would have to do it on each….

      Administrador

  23. Andy

    You guys rock!!! Thanks for the awesome post.

    Best,

    Andy

  24. ddeja

    Thanks for those tips. Some are new for me. So I will be probably try to use them:)

    Thanks again.

  25. William

    Thanks for the insightful post. Registering sidebar widgets and customising the excerpt mode is going to be handy. Cheers

  26. Kate Mag

    Thanks for sharing extremely useful tricks. I didn’t know few tricks before, i know now!.

  27. Adam

    Okay, the dynamic copyright date in the footer is one of the coolest tricks for Wordpress I’ve come across. Always hate having to do that each year, but not anymore. Thanks for sharing that one!

  28. Susan

    Hi, I am trying to change the default gravatar. The option to choose my new gravatar is showing up however instead of my pic for my gravatar it is showing a broken pic link. I know the path works cause it does when I plug it in to the browser the pic comes up. I have also tried .gif, .png, .jpg and they are all broken. Also it is sized per my theme at 48px X 48px Can you help?

  29. Dave Z

    There are some good suggestions here. Implementation could be improved for a few of them.

    For instance, in #8 – Dynamic Copyright, it would probably be better to call the function during the publish_page and publish_post actions. Then, instead of printing the year to the screen, the value (year range) could be stored in the options table (with update_option()). In the theme, you would do something like: echo get_option( ‘comicpress_copyright’, date( ‘Y’ ) );. This would give the current year as the default date, or your preset range. The advantage here is that you eliminate the constant need to query the database for the years during every page load (since get_option can be configured to load automatically with the rest of the options). WordPress can already be heavy on database queries, no need to add an additional one if it can be avoided!

    #18 – Remove Login Errors is removing -all- login errors, which could be bad because it also omits notices about disabled cookies, etc. A more effective approach would be to have the function return:

    str_replace( array( ‘Invalid username’, ‘Incorrect password’ ), ‘Invalid username or password’, $str );

    This keeps the user informed of potential errors while obfuscating which field the error actually occurred in. One thing to keep in mind is that if the username is correct, WordPress will auto-populate that field in subsequent login attempts. A hacker aware of WordPress operation would then know that the username was indeed valid. You can prevent this by commenting out the appropriate section in the wp-login.php file (lines 529-530 in version 2.9.2)–not ideal, I know, but there are no hooks at that point in the code.

    Nice tips. I like the Post Thumbnails demonstration.

  30. Abdullah

    Nice post.. very useful information.

    Thnkx wpbeginner for making us more professional in our field.

    Regards
    Mohummad Abdullah

  31. Zhu

    Thank you for the tips, I already implemented a few (like the custom Gravatar) and they work just fine!

  32. Sahus Pilwal

    Thanks for the extremely helpful tips. I wish I could find more extremely useful tricks/hack articles for WordPress!

    Cheers, Sahus

  33. graphicbeacon

    slight problem with NO. 14. Widget title starts with a h2 tag and ends with an h3- Wouldnt validate well methinks.

  34. Todd Santoro

    here is one for changing the login logo:

    function the_custom_login_logo() {
    echo ‘
    h1 a { background-image:url(‘.get_bloginfo(‘template_directory’).’/images/custom-login-logo.gif) !important; }
    ‘;
    }

    add_action(‘login_head’, ‘the_custom_login_logo’);

    • Todd Santoro

      Make sure you change the single quotes in this code to actuall single quotes as WP strips them in the comments so the PHP code is not executed. Better yet retype it and you will have no problem.

      Cheers!

  35. Kenton Bell

    I am really impressed with this list, better options than hacking away at the theme files that get lost in upgrades. Thank you.

  36. Raoni

    Hi,

    just an update, in item 4. Add a Custom Dashboard Logo, in WordPress 3 the “custom-logo.gif” now is a .png image.

    Great collection!!!!

  37. Andris

    That was a very useful post. I just implemented “4. Add a custom Dashboard Logo” to my Website.

  38. Todd Santoro

    Great post. I have this in my WP tool box now. It has everything a theme designer would need in one article. Thanks WPBeginner!

  39. Jake Goldman

    Great tips. Got a kick out of seeing a few of mine in there. :-) lots of new tips coming soon in my next article!

  40. Tony

    Finally! I know how to cure the incorrect comment count! Thanks, WPBeginner!

  41. DaveK

    Brilliance, I will be putting quite a few of these to good use.

    Congrats on the site guys you go from strength to strength, I usually manage to find something useful here.

    Keep up the good work.

Deixe uma resposta

Obrigado por deixar um comentário. Lembre-se de que todos os comentários são moderados de acordo com nossos política de comentários, e seu endereço de e-mail NÃO será publicado. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.