Passando variáveis para um template WordPress de forma eficiente
Um desafio enfrentado pelos desenvolvedores de temas ou plugins get_template_part
é a incapacidade de passar variáveis para o template WordPress carregado. Existe, no entanto, uma alternativa usando locate_template
.
Visão geral
Neste exemplo, vamos exibir três entradas do Easy Digital Download . Estou usando o EDD há algum tempo e, embora tenha muitos recursos, ainda é surpreendentemente leve.
Estaremos buscando as entradas e salvando-as na variável $edd_download
. Em seguida, carregaremos o template WordPress passando a variável. Na verdade, passar a variável é dizer muito: estaremos simplesmente carregando o template de forma que a $edd_download
variável tenha o escopo adequado para ser usada no template carregado.
Carregando um modelo do WordPress
Este código pode ser colocado em uma função. Você pode então conectar essa função a uma área do seu tema usando um gancho de ação ou simplesmente chamar a função como uma tag de modelo. Nos meus temas, uso ganchos para que os usuários possam adicionar ou remover conteúdo posteriormente. Isso é tudo que precisamos para o código:
Código do modelo
Agora precisamos do arquivo de modelo do WordPress. Se você notar a chamada acima, locate_template
espera encontrar o arquivo download-home.php
no diretório parts
dentro da pasta do tema.
Devemos sempre lembrar de chamar wp_reset_postdata()
após um loop foreach se chamamos setup_postdata()
.
Palavras de encerramento
Então, depois de tudo isso, por que isso é útil? porque os usuários podem criar um modelo em um tema filho e substituir facilmente o modelo original. Trata-se de tornar a vida mais fácil para seus usuários. Claro, isso também pode ser alcançado através de filtros ou criando funções conectáveis, mas alguns usuários podem considerar a edição de um modelo focado em uma tarefa uma abordagem mais limpa do que lidar com um arquivo com muitas funções para várias tarefas diferentes e não relacionadas.