Desenvolvimento WordPress

Entenda melhor o desenvolvimento de tema no WordPress 4.7

O WordPress 4.7 veio recheado de novos hooks e funções, como utilizar para agilizar o desenvolvimento de tema e entregar mais valor para o cliente.
dezembro de 2016 /4 min de leitura
Conteúdo escrito por humano
wp-4-7-elvis-pereira

O WordPress 4.7 veio cheio de novidades que vieram agregar e deixar ainda melhor o desenvolvimento de tema, foram adicionadas novas funções, hooks e comportamentos que podem mudar totalmente a forma que você desenvolve atualmente.

A função get_theme_file_uri() e suas agregadas.

A função get_template_part() foi introduzida no WordPress 3.0, ela é fundamental no desenvolvimento de tema e tema filho. Esta função busca no tema filho pelo arquivo especificado, se o arquivo não for encontrado, ela busca tal arquivo no tema pai. Isto permite facilmente que uma template part seja sobrescrita no tema filho.

Acompanhe em primeira mão tudo sobre o WordPress

A nova função get_theme_file_uri() introduzida no WordPress 4.7, habilita este comportamento de tema filho para URLs de arquivos do tema, por exemplo, quando um arquivo CSS ou JavaScript é printado:

wp_enqueue_script( 'my-script', get_theme_file_uri( 'js/my-script.js' ) );

O código acima printa a URL do arquivo js/my-script.js do seu tema filho se ele existir, caso o arquivo não exista no tema filho, então é printado a URL do arquivo contido no tema pai, assim como a função get_template_part().

A função get_theme_file_path() também foi introduzida. Ela é equivalente ao caminho do get_theme_file_uri(). Um caso de uso para esta função é se você gosta de gerar dinamicamente o parâmetro de versão para seus recursos printados, com base no último timestamp de modificação do arquivo (usando filemtime()):

wp_enqueue_script(
   'my-script',
   get_theme_file_uri( 'js/my-script.js' ),
   array(),
   filemtime( get_theme_file_path( 'js/my-script.js' ) )
);

E para finalizar, também foram introduzidas as funções get_parent_theme_file_uri() e get_parent_theme_file_path() que também retornam a URL ou o caminho do arquivo no tema pai (independente se o arquivo existir ou não no tema filho). Estas funções podem ser usadas em substituição as funções get_template_directory_uri() e get_template_directory(), respectivamente.

O filtro {$type}_template_hierarchy no desenvolvimento de tema

hierarquia de template para o desenvolvimento de tema

Este novo filtro nomeado dinamicamente permite a inclusão de novos arquivos na hierarquia de templates do WordPress. Embora já seja possível executar tal tarefa usando o filtro já existente chamado template_include, este novo filtro permite que tal tarefa seja feita de uma forma muito mais limpa. Nome dos filtros já disponíveis:

  • embed_template_hierarchy
  • 404_template_hierarchy
  • search_template_hierarchy
  • frontpage_template_hierarchy
  • home_template_hierarchy
  • taxonomy_template_hierarchy
  • attachment_template_hierarchy
  • single_template_hierarchy
  • page_template_hierarchy
  • singular_template_hierarchy
  • category_template_hierarchy
  • tag_template_hierarchy
  • author_template_hierarchy
  • date_template_hierarchy
  • archive_template_hierarchy
  • paged_template_hierarchy
  • index_template_hierarchy

Aqui está um exemplo do uso deste novo filtro para adicionar um arquivo baseado no ano ao topo da hierarquia para arquivos de data:

add_filter( 'date_template_hierarchy', function( array $templates ) {
    $year = get_query_var( 'year' );
    array_unshift( $templates, "year-{$year}.php" );
    return $templates;
} );

Aqui está um exemplo um pouco mais complexo de adicionar um arquivo à hierarquia para um arquivo de categoria com base no valor de seu campo meta de termo:

add_filter( 'category_template_hierarchy', function( array $templates ) {
    $format = get_term_meta( get_queried_object_id(), 'format', true );
    if ( $format ) {
        $new = "category-format-{$format}.php";
        $pos = array_search( 'category.php', $templates );
        array_splice( $templates, $pos, 0, $new );
    }
    return $templates;
} );

Este filtro também permite que os plugins de debug acessem e exibam a hierarquia de template completa para cada solicitação, para que você possa ver quais arquivos o WordPress está buscando em seu tema. A versão mais recente do Query Monitor já suporta esta funcionalidade.

Nomes de templates mais simples para conteúdo com slugs Non-ASCII

Dado um post ou termo com um nome Non-ASCII, como hello-world-?, a forma URL-encoded do nome é usada na hierarquia do template. Por exemplo, na visualização deste post, na hierarquia anterior ao WordPress 4.7:

  • single-post-hello-world-%f0%9f%98%80.php
  • single-post.php
  • single.php
  • singular.php
  • index.php

Isso não é muito fácil de usar, então o WordPress 4.7 adicionou um novo template de prioridade mais alta à hierarquia que usa a forma não codificada do nome:

  • single-post-hello-world-?.php
  • single-post-hello-world-%f0%9f%98%80.php
  • single-post.php
  • single.php
  • singular.php
  • index.php

Isso torna muito mais claro o que um arquivo de template se refere ao construir templates para posts específicas ou termos que incluem caracteres Non-ASCII em seu nome.

O WordPress 4.7 está recheado de novidades, aproveite cada uma delas para tornar o desenvolvimento de tema o mais produtivo possível, assim poupando tempo e fazendo uma entrega de valor ainda maior para seus clientes.

Qual nota você da para este artigo?
Ruim

O que você achou disso?

Clique nas estrelas

Média da classificação 0 / 5. Número de votos: 0

Nenhum voto até agora! Seja o primeiro a avaliar este post.

Excelente
Artigos Relacionados
Comparacao entre ferramentas de desempenho de blogs uteis

Comparação entre ferramentas de desempenho de blogs úteis

404 como você nunca viu

404 como nunca se viu

  1. […] o WordPress sem uma interface pública, mas quando a utiliza é feito através do Temas. E a versão 4.7 veio recheada de novos hooks e funções para agilizar o desenvolvimento de […]

Construa seu site WordPress sob medida com os maiores especialistas em WordPress da America Latina
Conheça a Apiki

Faça um comentário
Cadastre-se rápido

Fazer Login