npm install<\/code>.<\/li><\/ul>\n\n\n\nPor padr\u00e3o, o starter<\/em> vem apontando para uma instala\u00e7\u00e3o do WordPress que pertence ao Gatsby e d\u00e1 um monte de erro se voc\u00ea executar o npx gatsby develop<\/code> para subir o servidor. \u00c9 preciso alterar algumas coisas na configura\u00e7\u00e3o para apontar para outra instala\u00e7\u00e3o do WP e, a\u00ed sim, fazer funcionar. Vou deixar aqui a lista de mudan\u00e7as que eu tive que fazer:<\/p>\n\n\n\nNo arquivo gatsby-config.js<\/code>, altere os valores de baseUrl<\/code> e useACF<\/code> no plugin gatsby-source-wordpress<\/code>;<\/li>No arquivo src\/templates\/post.js<\/code>, ache a vari\u00e1vel pageQuery<\/code> e tire toda a parte relativa ao acf<\/code>;<\/li>Crie pelo menos uma tag no WordPress e associe a pelo menos um post e<\/li> Tenha certeza de que o endere\u00e7o \/wp-json<\/code> est\u00e1 funcionando.<\/li><\/ul>\n\n\n\nDepois disso, voc\u00ea pode rodar o npx gatsby develop<\/code> e ver o site Gatsby em a\u00e7\u00e3o no http:\/\/localhost:8000\/<\/code>, listando suas p\u00e1ginas e posts.<\/p>\n\n\n\nSite em Gatsby listando o conte\u00fado do site WordPress<\/figcaption><\/figure><\/div>\n\n\n\n\n
\n
Como a m\u00e1gica acontece<\/h3>\n\n\n\n Para entendermos um pouco de como a m\u00e1gica acontece, \u00e9 preciso olhar o arquivo gatsby-node.js<\/code>. <\/p>\n<\/div>\n\n\n\n\n
<\/figure>\n<\/div>\n<\/div>\n\n\n\nNeste arquivo existem duas coisas importantes: a consulta que o Gatsby faz para saber quais s\u00e3o as p\u00e1ginas e posts do WP e o forEach<\/code> que ele usa para cada um. Veja aquele allWordpressPost<\/code> dentro da chamada para graphql()<\/code> e depois a itera\u00e7\u00e3o sobre ele com:<\/p>\n\n\n\nconst postTemplate = path.resolve(`.\/src\/templates\/post.js`)\nallWordpressPost.edges.forEach(edge => {\n\tcreatePage({\n\t\tpath: `\/${edge.node.slug}\/`,\n\t\tcomponent: slash(postTemplate),\n\t\tcontext: {\n\t\t\tid: edge.node.id,\n\t\t},\n\t})\n})<\/code><\/pre>\n\n\n\nOu seja, o Gatsby vai pegar cada post, criar um caminho din\u00e2mico com o slug (poder\u00edamos colocar path: \/post\/${edge.node.slug}\/<\/code>, para ficar diferente das p\u00e1ginas) e usar o arquivo src\/templates\/post.js<\/code> para exibi-lo.<\/p>\n\n\n\nNo arquivo src\/templates\/post.js<\/code> temos, l\u00e1 no final, uma query para pegar os dados do post. Pelo meio do c\u00f3digo temos refer\u00eancias para post.title<\/code>, post.content<\/code>, etc., que ser\u00e3o substitu\u00eddos pelos dados reais do post. Voc\u00ea pode montar a sua pr\u00f3pria query usando a interface gr\u00e1fica do Gatsby acessando http:\/\/localhost:8000\/___graphql<\/code>.<\/p>\n\n\n\nGraphi<\/em>QL: A interface gr\u00e1fica dispon\u00edvel para montar consultas mais facilmente.<\/figcaption><\/figure><\/div>\n\n\n\nMas eu alterei o post no WordPress e n\u00e3o mudou no Gatsby!<\/p><\/blockquote>\n\n\n\n
Ent\u00e3o, tem algo importante aqui. O Gatsby s\u00f3 consulta os dados do WordPress no momento em que voc\u00ea sobe o servidor ou no momento em que voc\u00ea decide montar o pacote de produ\u00e7\u00e3o<\/strong>, executando npm run build<\/code>. Depois isso tudo fica armazenado no pr\u00f3prio Gatsby.<\/p>\n\n\n\n \n\n\n\nUm exemplo pr\u00e1tico onde voc\u00ea pode usar o Gatsby com WordPress \u00e9 um blog onde o WP fica, por exemplo, em admin.dominio.com<\/code> e s\u00f3 \u00e9 acess\u00edvel para o cliente. O conte\u00fado do WP alimenta o site est\u00e1tico dominio.com<\/code>, tendo este pacote est\u00e1tico gerado toda vez que algu\u00e9m cria um post novo. O site do dominio.com<\/code> vai ser MUITO r\u00e1pido e o WordPress pode ter uma regra de acesso que permite s\u00f3 atrav\u00e9s de determinados endere\u00e7os de IP.<\/p>\n\n\n\nEstudar um pouquinho do Gatsby me fez sentir aquela alegria de aprender uma coisa nova, aquela coisa boa de explorar o desconhecido e ir conseguindo avan\u00e7ar. Recomendo demais essa experi\u00eancia. \u00c9 um jeito muito legal de sair da nossa zona de conforto e ter contato com tecnologias diferentes!<\/p>\n\n\n\n
Este post ficou gigante, ent\u00e3o se voc\u00ea chegou at\u00e9 aqui, voc\u00ea merece PARAB\u00c9NS!<\/figcaption><\/figure><\/div>\n\n\n\nN\u00e3o se esque\u00e7a de comentar e compartilhar com os seus amigos nas redes sociais. Se notou alguma informa\u00e7\u00e3o errada por aqui, \u00e9 s\u00f3 avisar!<\/p>\n","protected":false},"excerpt":{"rendered":"
Entenda o b\u00e1sico do Gatsby e veja como ele funciona consumindo dados de uma instala\u00e7\u00e3o do WordPress com a API REST e GraphQL.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[30],"tags":[104],"yoast_head":"\n
GatsbyJS e WordPress: entendendo o b\u00e1sico | Felipe Elia<\/title>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\t \n\t \n\t \n