O que incluir no arquivo functions.php


Descrição

Nesta lição, você aprenderá que os temas do WordPress geralmente incluem um arquivo chamado functions.php, onde recursos exclusivos e funções personalizadas podem ser adicionados. No entanto, os plugins também servem para adicionar recursos e funcionalidades ao seu site. Quando você deve usar o functions.php para adicionar seu código personalizado e quando deve usar plugins?  Esta lição ajudará você a entender a diferença entre os dois.

Objetivos

Após concluir esta lição, você será capaz de:

  • Reconhecer e identificar os usos do functions.php em comparação com o uso de plugins para adicionar funcionalidades.
  • Explicar quando usar e quando não usar functions.

Habilidades necessárias

Você estará mais bem preparado para acompanhar esta lição se tiver:

  • Conhecimento básico sobre como criar um tema e um plugin
  • Familiaridade básica com PHP e código do WordPress

Perguntas de preparação

  • Você sabe instalar e ativar temas pelo painel do WordPress?
  • Você terá um site WordPress hospedado local ou remotamente para usar durante a aula?
  • Você se sente à vontade usando um editor de texto para editar código?
  • Você já adicionou funcionalidades personalizadas ao seu site WordPress?
  • Você conhece a hierarquia de arquivos dos temas do WordPress?

Slides

  • Não há slides para este plano de aula

Materiais necessários

  • WordPress instalado localmente
  • Dois ou mais temas do WordPress instalados

Observações para o apresentador

  • É mais fácil para os alunos trabalharem em uma cópia do WordPress instalada localmente. Reserve um tempo antes da aula para ajudar os alunos a instalar o WordPress localmente, caso precisem. Para obter mais informações sobre como instalar o WordPress localmente, visite Installing on a Local Server.
  • A resposta preferida para as perguntas de triagem é “sim”. Participantes que responderem “não” a todas as perguntas talvez não estejam prontos para esta lição.

Estrutura da lição

  • Apresentar o arquivo functions.php
  • Mostrar a diferença entre functions.php e um plugin
  • Descrever quando é uma boa ideia usar functions.php
  • Dar exemplos do que deve e do que não deve ser adicionado a um functions.php
  • Mostrar a diferença entre implementar functions.php em temas de blocos e temas clássicos

Exercícios

Adicione funcionalidades apenas ao functions.php.

1. Adicione a funcionalidade de comprimento personalizado do resumo ao arquivo functions.php do seu tema ativo, inserindo o código a seguir no arquivo:

function themename_custom_excerpt_length( $length ) { 
    return 40; //number of words in excerpt 
} 
add_filter('excerpt_length','themename_custom_excerpt_length', 99 ); 

2. Crie uma publicação de blog de teste com um resumo longo. Verifique se funciona corretamente e, em seguida, troque de tema.
3. Observe que a funcionalidade não existe mais porque foi colocada no arquivo functions.php de um tema específico.

Avaliação

Qual das opções a seguir não deve estar em function.php?

  1. Estilo da barra lateral
  2. Favicon
  3. Plano de fundo personalizado

Resposta: 2. Favicon

Recursos adicionais

Exemplo de lição

Introdução: O que é um arquivo functions.php?

O arquivo functions.php é usado para adicionar, remover ou alterar de outra forma os comportamentos padrão do WordPress. O arquivo fica dentro da pasta do tema. O functions.php funciona como um plugin do WordPress, permitindo que o autor adicione recursos e funcionalidades personalizadas a um site WordPress. Um tema filho pode ter seu próprio functions.php. No entanto, ao contrário do style.css, o functions.php de um tema filho não substitui o functions.php do tema pai. Em vez disso, ele é carregado além do functions.php do tema pai. (leia mais aqui)

Qual é a diferença entre functions.php e um plugin?

Como functions.php e os plugins permitem criar funcionalidades personalizadas e modificar o comportamento padrão do WordPress, pode ser um pouco confuso entender quando usar functions.php e quando criar ou usar um plugin para adicionar funcionalidades. Ao analisar os dois métodos com mais detalhes, você poderá entender melhor quando cada solução é apropriada. Em geral, os plugins são módulos independentes que podem ser baixados e instalados no seu site WordPress. O objetivo de um plugin é estender a funcionalidade do WordPress ou adicionar novos recursos. Não é necessário modificar o tema ativo para ativar plugins. Por outro lado, os temas são um conjunto de arquivos projetados para modificar a aparência do WordPress. Embora os temas possam incluir funcionalidades personalizadas (tipos de post personalizados, um painel de configuração visual etc.), na maior parte das vezes você seleciona os temas com base na maneira como eles modificarão a experiência do usuário no seu site. As características básicas que definem e distinguem os plugins do WordPress do arquivo functions.php são:

Um plugin do WordPress…

  • exige um texto de cabeçalho específico e exclusivo.
  • é armazenado em wp-content/plugins, geralmente em um subdiretório.
  • é executado somente quando ativado individualmente, pelo painel de “plugins”.
  • aplica-se a todos os temas.
  • deve ter uma única finalidade, por exemplo, converter posts em páginas, oferecer recursos de otimização para mecanismos de busca ou ajudar com backups.

Um arquivo functions.php…

  • não exige um texto de cabeçalho exclusivo.
  • é armazenado com cada tema no subdiretório do tema, em wp-content/themes.
  • é executado somente quando está no diretório do tema atualmente ativado.
  • aplica-se somente a esse tema. Se o tema for alterado, a funcionalidade será perdida.
  • pode conter vários blocos de código usados para muitas finalidades diferentes.

Quando usar functions.php

Poderíamos deduzir que, se a funcionalidade personalizada estiver relacionada à apresentação visual, ela deverá estar em functions.php, e, se estiver relacionada ao comportamento do site, deverá ser armazenada em um plugin. No entanto, tecnicamente é possível armazenar personalizações de apresentação visual em um plugin; então, como determinamos qual é a melhor opção? A resposta é surpreendentemente simples. A pergunta que precisamos fazer a nós mesmos é: essa funcionalidade deve estar vinculada a um tema específico ou não? Como o functions.php fica em uma pasta do tema, esse tema precisa estar ativo para que qualquer funcionalidade personalizada funcione. No entanto, se essa funcionalidade personalizada fosse armazenada em um plugin, você poderia trocar de tema e ainda manter a funcionalidade personalizada. Assim, a melhor maneira de determinar como incluir seu código personalizado é verificar se a funcionalidade é específica de um tema ou se oferece suporte ao conteúdo ou à estrutura do site, independentemente do tema ativado. Por exemplo, você pode querer ter um comprimento de resumo exclusivo para posts em um tema específico, com base em seu design e layout; portanto, a funcionalidade de resumo deve ser adicionada ao functions.php. Se quiser implementar um link “leia mais” para todos os posts, independentemente do tema usado, essa função deverá ser adicionada como um plugin.

Coisas que poderiam ser incluídas no functions.php:

  • formatação de conteúdo
  • funcionalidades de cabeçalho e rodapé específicas do tema
  • hooks do WordPress para alterar a saída, por exemplo, usando o filtro excerpt_length para alterar o comprimento do resumo de um post
  • código que ativa o suporte do tema para miniaturas de posts, formatos de post e menus de navegação
  • funções que você gostaria de reutilizar em vários arquivos de modelo do tema

Coisas que não devem ser incluídas no functions.php:

  • funcionalidades relacionadas a SEO
  • scripts do Google Analytics
  • tipos de post e taxonomias personalizados

Implementando functions.php em temas de blocos e temas clássicos

Os temas clássicos do WordPress exigem que o desenvolvedor adicione suporte ao tema para os recursos do WordPress. Um arquivo functions.php típico em um tema clássico incluirá uma função para configurar o suporte a esses temas, usando a função add_theme_support() (também conhecida como ‘suportes do tema’).

Em um tema de blocos, determinados suportes de tema são ativados por padrão e não precisam ser ativados explicitamente. Além disso, alguns suportes de tema são ativados quando você inclui uma configuração no arquivo theme.json de um tema de blocos. A configuração em theme.json tem precedência sobre um recurso adicionado por meio de add_theme_support(). Por exemplo, incluir a configuração settings.layout em theme.json ativará o suporte de tema align-wide.

💡 Continue com os Exercícios e a Avaliação apresentados acima.