# Tainacan, ACF, novos campos e acesso a template

**URL:** https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247
**Category:** Dúvidas
**Created:** [Junho 7, 2021, 8:35pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247 "2021-06-07T20:35:33Z")
**Posts on this page:** 18
**Page:** 1

<div class="post-metadata">

### Author: ![Birous](https://avatars.discourse-cdn.com/v4/letter/b/50afbb/32.png) [@Birous](https://tainacan.discourse.group/u/Birous)
#### Post date: [Junho 7, 2021, 8:35pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/1 "2021-06-07T20:35:33Z")

</div>

Olá a todos

Eu trabalho com o ACF no WordPress. Dessa forma posso criar campos para conteúdo específico, referencia-los e exibi-los onde preciso, incorporando-os em templates.

Como acesso e referencio campos como esse em templates do Tainacan em outro tema? Costumo usar o GeneratePress, que é muito leve e versatil.

Tenho tambem um caso de uso bem específico: preciso cadastrar links para pontos de entrada para um player de áudios. E tambem referenciar/exibir audios anexados em conteudo do Tainacan em outras paginas e widgets. Isso eh possivel? Com uma WPQuery, por exemplo?

Toda ajuda é bem-vinda

---

<div class="post-metadata">

### Author: ![mateus.m.luna](https://yyz2.discourse-cdn.com/free1/user_avatar/tainacan.discourse.group/mateus.m.luna/32/3_2.png) [@mateus.m.luna](https://tainacan.discourse.group/u/mateus.m.luna)
#### Post date: [Junho 7, 2021, 8:46pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/2 "2021-06-07T20:46:49Z")

</div>

Olá Birous, tudo bem? Seja bem vindo!

Eu sugeriria dividir sua questão em tópicos diferentes pra podermos discutir melhor. Começando com a questão dos ACFs, não sei se entendi bem o que você está precisando.

Vou te adiantar que as coleções e os itens do Tainacan são `custom_post_types` por trás dos panos, então é possível tirar proveito de blocos e templates pensados para eles. A vantagem de se ter um tema compatível (hoje em referenciamos principalmente o [Tainacan Interface](https://wordpress.org/themes/tainacan-interface/) e o [Blocksy](https://wordpress.org/themes/blocksy/), o último com suporte [via plugin](https://wordpress.org/plugins/tainacan-blocksy/)) é que eles tiram melhor proveito usando algumas funções que renderizam interfaces mais complexas, já preparadas pelo plugin - vide a lista de itens com busca facetadas e a galeria de mídia para os anexos.

Dito isso, temos um pouco de documentação sobre como criar estes temas compatíveis: [Tainacan Wiki](https://tainacan.github.io/tainacan-wiki/#/dev/creating-compatible-themes)

E eu estou a disposição para ajudar caso queira fazer algo com o Generatepress!

---

<div class="post-metadata">

### Author: ![Birous](https://avatars.discourse-cdn.com/v4/letter/b/50afbb/32.png) [@Birous](https://tainacan.discourse.group/u/Birous)
#### Post date: [Junho 7, 2021, 9:00pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/3 "2021-06-07T21:00:25Z")

</div>

> [@mateus.m.luna](#):
>
> Eu sugeriria dividir sua questão em tópicos diferentes pra podermos discutir melhor. Começando com a questão dos ACFs, não sei se entendi bem o que você está precisando.

Perfeita sugestão, Mateus. Vou separar em tópicos. Realmente vai ficar melhor.

O _GeneratePress_ é um tema MUITO bom para devs e _frontenders_ com noção de programação em WP. Vai ser muito bom tentar criar suporte para o Tainacan nele.

Crio sites muito rapidamente no GP, e não sei se teria essa agilidade no Blocksy, por exemplo. Além do que o GP tem suporte para hooks nativamente (na versão paga).

---

<div class="post-metadata">

### Author: ![mateus.m.luna](https://yyz2.discourse-cdn.com/free1/user_avatar/tainacan.discourse.group/mateus.m.luna/32/3_2.png) [@mateus.m.luna](https://tainacan.discourse.group/u/mateus.m.luna)
#### Post date: [Junho 7, 2021, 9:04pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/4 "2021-06-07T21:04:13Z")

</div>

Massa, eu já brinquei um pouco com ele, é realmente muito bom. É sempre um desafio encontrarmos um tema que possa atender às possíveis demandas de cada um. Mas se você está disposto a trabalhar com isso, podemos marcar uma conversa particular para eu te explicar o caminho das pedras e o que geralmente espera-se de um tema “Com suporte ao Tainacan”.

Mas sua dúvida com os ACFs aqui era qual mesmo? Eu realmente não saquei rsrs

---

<div class="post-metadata">

### Author: ![Birous](https://avatars.discourse-cdn.com/v4/letter/b/50afbb/32.png) [@Birous](https://tainacan.discourse.group/u/Birous)
#### Post date: [Junho 7, 2021, 9:53pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/5 "2021-06-07T21:53:12Z")

</div>

> [@mateus.m.luna](#):
>
> Mas sua dúvida com os ACFs aqui era qual mesmo? Eu realmente não saquei rsrs

Agora que está mais claro como e onde acessar os templates do Tainacan, acho que fica mais facil rseolver os campos de ACF. Vou ver se consigo. Caso sim, caso nao, retorno os resultados aqui, ok?

---

<div class="post-metadata">

### Author: ![mateus.m.luna](https://yyz2.discourse-cdn.com/free1/user_avatar/tainacan.discourse.group/mateus.m.luna/32/3_2.png) [@mateus.m.luna](https://tainacan.discourse.group/u/mateus.m.luna)
#### Post date: [Junho 7, 2021, 10:07pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/6 "2021-06-07T22:07:15Z")

</div>

Tranquilo, tamo aqui!

---

<div class="post-metadata">

### Author: ![Birous](https://avatars.discourse-cdn.com/v4/letter/b/50afbb/32.png) [@Birous](https://tainacan.discourse.group/u/Birous)
#### Post date: [Junho 10, 2021, 9:23pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/7 "2021-06-10T21:23:27Z")

</div>

Olá, @mateus.m.luna  
Comecei os testes e estudos aqui, mas sem muito sucesso. Pode me ajudar?

Criei uma pasta _tainacan_ na raiz do tema e dentro dela uma single-items.php. Eu queria conseguir reproduzir a estrutura da single usando as _helpers_ porque preciso inserir outros campos/dados entre os que são gerados pelo Tainacan. Mas nenhuma _helper_ funcionou. Alias, só duas. Devo estar fazendo algo errado, claro…

---

<div class="post-metadata">

### Author: ![mateus.m.luna](https://yyz2.discourse-cdn.com/free1/user_avatar/tainacan.discourse.group/mateus.m.luna/32/3_2.png) [@mateus.m.luna](https://tainacan.discourse.group/u/mateus.m.luna)
#### Post date: [Junho 10, 2021, 10:51pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/8 "2021-06-10T22:51:00Z")

</div>

Olá @Birous. Tranquilo, vamos por partes. Quais que funcionaram e quais que não?

A primeira dica que eu daria seria dar uma conferida nos códigos que temos já, pra servir de referência:

- [tainacan-theme/single-items.php at develop · tainacan/tainacan-theme · GitHub](https://github.com/tainacan/tainacan-theme/blob/develop/src/tainacan/single-items.php)
- [blocksy-tainacan/item-single-page.php at master · tainacan/blocksy-tainacan · GitHub](https://github.com/tainacan/blocksy-tainacan/blob/master/tainacan-blocksy/tainacan/item-single-page.php)

Você vai querer usar o template do tema para posts, com exceção do miolo em si, onde o `the_content` vai ser substituído pelo uso das funções `helpers`. São três coisas que você geralmente vai querer mostrar:

1. O Documento do Item;
2. Os Anexos do Item (possivelmente integrados num mesmo carrossel do Documento do Item);
3. Os metadados;

Os metadados é mais de boa. Basta usar a função `tainacan_the_metadata()`:

> <https://github.com/tainacan/tainacan/blob/366da1b7a2d5f553cb74166bc208671a56966061/src/classes/theme-helper/template-tags.php#L58>

Passando os parâmetros que quiser.

Já o Documento e Anexos são mais complexos. Embora tenha o `tainacan_the_content` lá prontinho pra você, geralmente você vai querer exibir este documento num carrossel com os anexos e com um lightbox… por isso fizemos a `tainacan_get_the_media_component`.

> <https://github.com/tainacan/tainacan/blob/366da1b7a2d5f553cb74166bc208671a56966061/src/classes/theme-helper/template-tags.php#L301>

Ela é mais complexa justamente por tentar cobrir as várias opções que os temas podem querer atribuir. Por isso sugiro fortemente ver o código fonte dos outros pra te ajudar.

Qualquer dúvida pode dar uma grito aqui!

---

<div class="post-metadata">

### Author: ![Birous](https://avatars.discourse-cdn.com/v4/letter/b/50afbb/32.png) [@Birous](https://tainacan.discourse.group/u/Birous)
#### Post date: [Junho 15, 2021, 1:13pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/9 "2021-06-15T13:13:50Z")

</div>

Salve! Estou progredindo (devagar). Consegui usar o tainacan\_the\_metadata(), mas nao encontrei maneira de usar o slug ou ID de cada uma das metadatas criadas.

Tentei usar tainacan\_the\_content(), mas nada apareceu.

Testei tainacan\_get\_the\_media\_component(), mas tambem não soube usar…

---

<div class="post-metadata">

### Author: ![mateus.m.luna](https://yyz2.discourse-cdn.com/free1/user_avatar/tainacan.discourse.group/mateus.m.luna/32/3_2.png) [@mateus.m.luna](https://tainacan.discourse.group/u/mateus.m.luna)
#### Post date: [Junho 15, 2021, 1:19pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/10 "2021-06-15T13:19:19Z")

</div>

Beleza! Então agora, quando você entra na página do Item, os metadados estão sendo todos listados?

> [@Birous](#):
>
> Salve! Estou progredindo (devagar). Consegui usar o tainacan\_the\_metadata(), mas nao encontrei maneira de usar o slug ou ID de cada uma das metadatas criadas.

Em que sentido usar?

> [@Birous](#):
>
> Tentei usar tainacan\_the\_content(), mas nada apareceu.

Só pra me certificar aqui, você tá chamando a função no template do single de itens né? E você está acessando a página do item no tema? O seu item tem algum documento?

---

<div class="post-metadata">

### Author: ![Birous](https://avatars.discourse-cdn.com/v4/letter/b/50afbb/32.png) [@Birous](https://tainacan.discourse.group/u/Birous)
#### Post date: [Junho 15, 2021, 5:44pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/11 "2021-06-15T17:44:37Z")

</div>

> [@mateus.m.luna](#):
>
> Beleza! Então agora, quando você entra na página do Item, os metadados estão sendo todos listados?

Sim, sao todos listados

> [@mateus.m.luna](#):
>
> Em que sentido usar?

Eu quis dizer q nao consegui achar o slug/ID dos itens/metadados q criei. A função retorna todos

> [@mateus.m.luna](#):
>
> Só pra me certificar aqui, você tá chamando a função no template do single de itens né? E você está acessando a página do item no tema? O seu item tem algum documento?

O GeneratePress tem uma especie de include no template do single. Sobreescrevi a estrutura criando uma pasta tainacan com um arquivo single-items.php que chama um template de conteudo (content-item.php). Dentro do content-item.php comentei o the\_content() e chamei as funcoes tainacan.

---

<div class="post-metadata">

### Author: ![Birous](https://avatars.discourse-cdn.com/v4/letter/b/50afbb/32.png) [@Birous](https://tainacan.discourse.group/u/Birous)
#### Post date: [Junho 17, 2021, 3:19pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/12 "2021-06-17T15:19:50Z")

</div>

> [@mateus.m.luna](#):
>
> Beleza! Então agora, quando você entra na página do Item, os metadados estão sendo todos listados?

@mateus.m.luna, tem alguma forma de eu recuperar essas IDs com alguma funcao para listar cada metadado?

Em algum momento acredito q vou precisar criar um campo para uso de maneira bem especifica…

---

<div class="post-metadata">

### Author: ![mateus.m.luna](https://yyz2.discourse-cdn.com/free1/user_avatar/tainacan.discourse.group/mateus.m.luna/32/3_2.png) [@mateus.m.luna](https://tainacan.discourse.group/u/mateus.m.luna)
#### Post date: [Junho 17, 2021, 8:58pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/13 "2021-06-17T20:58:02Z")

</div>

Oi @Birous tem sim.

```auto
// o post atual é um item do Tainacan?
if ( !$this->is_post_an_item($post) ) {
	return;
}
// Instanciar como um objeto ITEM
$item = new Entities\Item($post);

$item->get_metadata();

```

Neste objeto você tem acesso aos IDs dos metadados.

Mas queria entender o que está pegando com seu documento e anexos… dando um `var_dump` neste objeto `$item`, o que aparece?

---

<div class="post-metadata">

### Author: ![Birous](https://avatars.discourse-cdn.com/v4/letter/b/50afbb/32.png) [@Birous](https://tainacan.discourse.group/u/Birous)
#### Post date: [Junho 18, 2021, 9:21pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/14 "2021-06-18T21:21:16Z")

</div>

@mateus.m.luna, usei esse codigo no template e nada acontece. Dependendo de como uso, ate some o conteudo da pagina

---

<div class="post-metadata">

### Author: ![mateus.m.luna](https://yyz2.discourse-cdn.com/free1/user_avatar/tainacan.discourse.group/mateus.m.luna/32/3_2.png) [@mateus.m.luna](https://tainacan.discourse.group/u/mateus.m.luna)
#### Post date: [Junho 18, 2021, 11:53pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/15 "2021-06-18T23:53:30Z")

</div>

Uhmm então me parece que o `$post` neste seu caso não é um item! Tem algo errado de fato. Se você der um `var_dump($post)`, o que aparece? Você pode compartilhar um pouco do seu código pra me ajudar a debugar?

---

<div class="post-metadata">

### Author: ![Birous](https://avatars.discourse-cdn.com/v4/letter/b/50afbb/32.png) [@Birous](https://tainacan.discourse.group/u/Birous)
#### Post date: [Junho 20, 2021, 3:59am UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/16 "2021-06-20T03:59:38Z")

</div>

@mateus.m.luna,

Uma das propriedades do var\_dump($post) foi justamente [“post\_type”]=\> string(15) “tnc\_col\_28\_item”  
Me parece entao q o post é um item Tainacan, nao?

O codigo eh um montador normal de pagina do WordPress. Quer q cole tudo aqui?

---

<div class="post-metadata">

### Author: ![Birous](https://avatars.discourse-cdn.com/v4/letter/b/50afbb/32.png) [@Birous](https://tainacan.discourse.group/u/Birous)
#### Post date: [Junho 20, 2021, 4:20am UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/17 "2021-06-20T04:20:29Z")

</div>

> [@mateus.m.luna](#):
>
> ```auto
> // Instanciar como um objeto ITEM
> $item = new Entities\Item($post);
> 
> ```

Deu certo! Mudei Entities\Item para Tainacan\Entities\Item e printou o dump do $item

---

<div class="post-metadata">

### Author: ![mateus.m.luna](https://yyz2.discourse-cdn.com/free1/user_avatar/tainacan.discourse.group/mateus.m.luna/32/3_2.png) [@mateus.m.luna](https://tainacan.discourse.group/u/mateus.m.luna)
#### Post date: [Junho 20, 2021, 10:49pm UTC](https://tainacan.discourse.group/t/tainacan-acf-novos-campos-e-acesso-a-template/247/18 "2021-06-20T22:49:42Z")

</div>

Opaaa bom demais!
