WordPress Desenvolvimento de Temas - Folha de dicas » Haste
Um resumo para auxiliar na memorização de conceitos e funções disponíveis para o desenvolvimento de temas para WordPress.
por Estúdio Haste
Versão A4, no Google Docs
Clique aqui para ser redirecionado para o documento.
Um tema é um conjunto de templates responsável pela exibição do conteúdo do site.
Um tema é definido criando um subdiretório na pasta wp-content/themes/{meu-tema}, com um arquivo style.css com um cabeçalho específico que você pode ver aqui: https://developer.wordpress.org/themes/basics/main-stylesheet-style-css/#basic-structure
Um tema é composto por um conjunto de templates, que são arquivos arquivos .php responsáveis pela exibição de cada seção do site.
A hierarquia de templates é a regra de designação de qual template irá exibir cada seção do site. Por exemplo, ao acessar uma página, o template a ser utilizado pode ser o page.php, um post, o single.php.
O Loop é o mecanismo padrão que o WordPress utiliza para exibir posts em um template de um tema. Sua estrutura básica é esta:
//Insira template tags
O loop é necessário mesmo em posts e páginas individuais. https://developer.wordpress.org/themes/basics/the-loop/
As template tags são funções especializadas em dar saída ou retornar valores relativos aos posts. Geralmente são usadas dentro dos loops.
As iniciadas com the_ dão saída no dado, as iniciadas com get_the_ retornam o dado.
Exibe/retorna o título do post.
Exibe/retorna o conteúdo do post.
Exibe/retorna o link do post.
Exibe/retorna a data de publicação do post
Exibe/retorna o resumo do post.
Exibe a imagem destacada do post.
Exibe as tags associadas ao post.
Exibe as categorias associadas ao post.
Inclui o header.php no template.
Inclui o footer.php no template.
Retorna uma meta informação do post.
is_home() – retorna true se a página principal de post está sendo exibida.
is_front_page() – retorna true se a página inicial está sendo exibida.
is_single() – retorna true caso seja um post, de qualquer post type, individual.
is_page() – retorna true caso seja a página individual.
is_archive() – retorna trua caso seja arquivo.
is_category() – retorna true caso seja arquivo de categoria.
is_tag() – retorna true caso seja arquivo de tag.
is_tax() – retorna trua caso seja arquivo de taxonomia.
is_post_type_archive() – retorna true caso seja arquivo de um post type.
has_post_thumbnail() – usado no loop, retorna true se o post possuir imagem destacada.
is_admin() – retorna true caso seja qualquer página do painel.
is_user_logged_in() – retorna true se o usuário estiver conectado.
O functions.php é um arquivo que funciona como um plugin "embutido", em que podemos inserir funcionalidades, geralmente através dos hooks do WordPress.
Você também pode criar funções que estarão disponíveis para uso em qualquer template do tema.
Hooks são eventos, em que podemos associar funções a serem executadas em um determinado momento.
Adicionamos uma função minha_funcao() a um hook usando:
add_action('get_footer','minha_funcao', 10 ); // ordem de execução
Quando a template tag get_footer for executada, minha_funcao() também será invocada.
'minha_funcao',
10 //ordem de execução
1 //qtd. de parâmetros
Antes de exibir o conteúdo das de the_content/get_the_content, nossa função será invocada e receberá como parâmetro o conteúdo a ser filtrado, ex:
function minha_funcao( $content ) {
return $content .= '<h1>Oi</h1>';
register_sidebar() – realiza o registro de uma sidebar, definindo seu id, nome, descrição e html exibido antes e depois da sidebar e de cada um de seus widgets.
dynamic_sidebar( $id ) – exibe a sidebar do determinado id.
register_nav_menus() – registra uma determinada área de menu para o tema. Exemplo:
function registrar_menus() {
'topo'   => 'Topo',
'rodape' => 'Rodapé'
add_action( 'init', 'registrar_menus' );
wp_nav_menu() – exibe um determinado menu registrado no tema. Ex:
'theme_location' => 'topo'
É importante utilizar as funções do WordPress para carregamento de scripts, gerenciando dependências e tornando mais fácil removê-lo, caso necessário, em algum contexto.
wp_enqueue_script() – coloca um script na fila para ser carregado no tema.
wp_enqueue_style() – coloca uma folha de estilos na fila para ser carregada pelo tema.
wp_dequeue_script() – remove um script da fila para ser carregado.
wp_dequeue_style() – remove uma folha de estilos da fila para ser carregada.
Os temas WordPress precisam registrar que dão suporte a determinadas funcionalidades da plataforma, como imagens em destaque, logo personalizado, paleta de cores no editor, dentre outros.
add_theme_support() – registra que o seu tema dá suporte a determinada feature.
Ao fazer upload de uma imagem, o WordPress já cria diversos recortes. Estes tamanhos podem ser modificados no painel configurações > mídia, mas também é possível modificá-los e registrar novos via código.
add_image_size() – registra um novo tamanho de imagem.
Para modificar um tamanho, use:
update_option( 'thumbnail_size_w', 430 );
'thumbnail_size_w' => 150
'thumbnail_size_h' => 150
'medium_size_w' => 300
'medium_size_h' => 300
'medium_large_size_w' => 768
'medium_large_size_h' => 0
'large_size_w' => 1024
'large_size_h' => 1024
WP_Query e get_posts()
Para além do loop padrão, é possível consultar posts utilizando a função get_posts() ou a classe WP_Query.
Exemplo, get_posts():
Exemplos WP_Query: https://developer.wordpress.org/reference/classes/wp_query/
O WordPress possui um sistema de internacionalização de código próprio. Para saber mais, veja: https://developer.wordpress.org/themes/functionality/internationalization/
Abaixo as principais funções utilizadas:
__() – retorna a tradução da string.
_e() – exibe a tradução de uma string.
_n() – retorna a tradução no plural ou singular de uma string.
_x() – retorna a tradução de uma string em um determinado contexto.
A documentação do WordPress: https://developer.wordpress.org
⚠ Cuidado com páginas do Codex! Esta é a documentação antiga, e apesar de muitas coisas válidas ainda, pode conter exemplos desatualizados.