{"id":66317,"date":"2024-01-10T15:09:28","date_gmt":"2024-01-10T18:09:28","guid":{"rendered":"https:\/\/kinsta.com\/pt\/?p=66317&#038;preview=true&#038;preview_id=66317"},"modified":"2024-08-21T17:10:37","modified_gmt":"2024-08-21T20:10:37","slug":"node-js-wordpress","status":"publish","type":"post","link":"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/","title":{"rendered":"Node.js e WordPress: Criando APIs Din\u00e2micas para Aplicativos Personalizados"},"content":{"rendered":"<p>Como desenvolvedor web, voc\u00ea provavelmente conhece o Node.js e o WordPress. O Node.js \u00e9 um ambiente runtime avan\u00e7ado que executa JavaScript fora do navegador, e o WordPress \u00e9 o principal <a href=\"https:\/\/kinsta.com\/pt\/blog\/sistema-de-gerenciamento-de-conteudo\/\">sistema de gerenciamento de conte\u00fado (CMS)<\/a>.<\/p>\n<p>Essas plataformas distintas \u2014 <a href=\"https:\/\/kinsta.com\/pt\/topicos\/node-js\/\">Node.js<\/a>, baseado em JavaScript, e WordPress, um CMS <a href=\"https:\/\/kinsta.com\/pt\/topicos\/atualizacoes-php\/\">desenvolvido em PHP<\/a> \u2014 podem operar juntas gra\u00e7as \u00e0\u00a0<a href=\"https:\/\/kinsta.com\/pt\/blog\/wordpress-rest-api\/\">API REST do WordPress<\/a>. Essa API permite que os aplicativos do Node.js interajam com o WordPress por meio de <a href=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-uma-solicitacao-http\/\">solicita\u00e7\u00f5es HTTP<\/a>. Ela fornece acesso a v\u00e1rios dados, incluindo usu\u00e1rios, coment\u00e1rios, p\u00e1ginas, publica\u00e7\u00f5es e outros elementos do site.<\/p>\n<p>Mas qual \u00e9 a vantagem de combinar Node.js e WordPress?<\/p>\n<p>Imagine que voc\u00ea tenha um site WordPress e queira criar um painel personalizado. Esse painel poderia exibir dados em tempo real do seu site, como publica\u00e7\u00f5es recentes, contagem de coment\u00e1rios e atividade do usu\u00e1rio.<\/p>\n<p>\u00c9 aqui que o Node.js desempenha um papel fundamental. Este guia orienta voc\u00ea na configura\u00e7\u00e3o de endpoints do Node.js. Esses endpoints aproveitam a API REST do WordPress para v\u00e1rias tarefas: atualiza\u00e7\u00e3o de publica\u00e7\u00f5es, modera\u00e7\u00e3o de coment\u00e1rios, personaliza\u00e7\u00e3o do site e administra\u00e7\u00e3o personalizada do site WordPress.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Pr\u00e9-requisitos<\/h2>\n<p>Para acompanhar este guia, presumimos que voc\u00ea tenha:<\/p>\n<ul>\n<li>Conhecimento b\u00e1sico do Node.js.<\/li>\n<li><a href=\"https:\/\/kinsta.com\/pt\/blog\/como-instalar-o-node-js\/\">Node.js e npm<\/a> instalados em seu computador.<\/li>\n<li>O WordPress e a <a href=\"https:\/\/www.thunderclient.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">extens\u00e3o Thunder Client VS Code<\/a> instalados.<\/li>\n<\/ul>\n<h2>Gerencie publica\u00e7\u00f5es do WordPress com o Node.js<\/h2>\n<p>No WordPress, as tarefas fundamentais incluem criar, atualizar e excluir publica\u00e7\u00f5es. Esta se\u00e7\u00e3o explica como criar endpoints espec\u00edficos para essas a\u00e7\u00f5es, al\u00e9m de como fazer solicita\u00e7\u00f5es ao endpoint <code>\/posts<\/code> para cada opera\u00e7\u00e3o.<\/p>\n<h3>Cria\u00e7\u00e3o de um novo artigo no WordPress<\/h3>\n<p>Para criar um novo artigo no WordPress com a API REST, voc\u00ea deve fazer uma solicita\u00e7\u00e3o POST para o endpoint <code>\/posts<\/code>. No corpo da solicita\u00e7\u00e3o, voc\u00ea precisa fornecer o conte\u00fado do seu artigo WordPress no formato JSON.<\/p>\n<p>Primeiro, abra o arquivo do <a href=\"https:\/\/kinsta.com\/pt\/blog\/crie-aplicativo-express\/\">servidor Node.js<\/a>, geralmente chamado de <strong>App.js<\/strong>. Certifique-se de que o <a href=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-express-js\/\">Express<\/a> esteja configurado corretamente em seu arquivo de servidor. Normalmente, isso \u00e9 feito com a linha <code>const app = express()<\/code>, que inicializa o Express.<\/p>\n<p>Em seguida, implemente uma rota em seu arquivo de servidor para adicionar um novo artigo. O c\u00f3digo para essa rota \u00e9 parecido com o seguinte:<\/p>\n<pre><code class=\"language-js\">app.post(\"\/add-post\", async (req, res) =&gt; {\n   try {\n    const postID = req.body.id\n    const resp = await axios.post(`https:\/\/yourdomain.com\/wp-json\/wp\/v2\/posts\/${postID}`, req.body)\n\t\n    if(resp.status !== 200) throw \"Something went wrong\"\n       \n  } catch (err) {        \n    console.log(err)        \n  }\n})<\/code><\/pre>\n<p>Esse c\u00f3digo cria um endpoint <code>\/add-post<\/code> em seu aplicativo. Quando uma solicita\u00e7\u00e3o \u00e9 enviada a esse endpoint, ele extrai o ID do artigo do corpo da solicita\u00e7\u00e3o e envia uma solicita\u00e7\u00e3o POST ao seu site WordPress. Lembre-se de substituir <code>https:\/\/yourdomain.com<\/code> pelo seu dom\u00ednio WordPress.<\/p>\n<p>Voc\u00ea pode testar isso usando ferramentas como o Thunder Client no Visual Studio Code. Certifique-se de que o corpo JSON da sua solicita\u00e7\u00e3o seja v\u00e1lido para evitar erros.<\/p>\n<figure style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/add-post.png\" alt=\"Corpo JSON de uma solicita\u00e7\u00e3o POST para o endpoint \/add-post.\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Corpo JSON de uma solicita\u00e7\u00e3o POST para o endpoint \/add-post.<\/figcaption><\/figure>\n<p>Essa abordagem permite que voc\u00ea fa\u00e7a publica\u00e7\u00f5es eficientes e automatizadas no site do WordPress a partir do seu aplicativo.<\/p>\n<h3>Atualiza\u00e7\u00e3o de um artigo existente no WordPress<\/h3>\n<p>Para atualizar um artigo com a API do WordPress, fa\u00e7a uma solicita\u00e7\u00e3o PUT para o endpoint <code>\/posts<\/code> em sua API do WordPress. Voc\u00ea tamb\u00e9m precisa fornecer o conte\u00fado atualizado do seu artigo WordPress no formato JSON.<\/p>\n<p>A rota para atualizar uma publica\u00e7\u00e3o existente no WordPress \u00e9 a seguinte:<\/p>\n<pre><code class=\"language-js\">app.put(\"\/update-post\", async (req, res) =&gt; {\n  try {\n    const postID = req.body.id                    \n      \n    const resp = await axios.put(`https:\/\/yourdomain.com\/wp-json\/wp\/v2\/posts\/${postID}`, req.body)\n\t\n    if(resp.status !== 200) throw \"Something went wrong\"\n       \n  } catch (err) {        \n    console.log(err)        \n  }\n})<\/code><\/pre>\n<p>Por exemplo, voc\u00ea pode atualizar um artigo com um ID de <code>3<\/code> no WordPress com a seguinte solicita\u00e7\u00e3o no Thunder Client:<\/p>\n<figure style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/update-post.png\" alt=\"Corpo JSON de uma solicita\u00e7\u00e3o PUT para o endpoint \/update-post.\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Corpo JSON de uma solicita\u00e7\u00e3o PUT para o endpoint \/update-post.<\/figcaption><\/figure>\n<h3>Exclus\u00e3o de um artigo no WordPress<\/h3>\n<p>Para excluir um artigo no WordPress, fa\u00e7a uma solicita\u00e7\u00e3o DELETE para o endpoint <code>\/posts<\/code> usando o ID exclusivo do artigo que voc\u00ea deseja excluir.<\/p>\n<pre><code class=\"language-js\">app.delete(\"\/delete-post\", async (req, res) =&gt; {\n  try {\n    const postID = req.body.id                \n        \n    const resp = await axios.delete(`https:\/\/yourdomain.com\/wp-json\/wp\/v2\/posts\/${postID}`)\n\t\n    if(resp.status !== 200) throw \"Something went wrong\"\n       \n  } catch (err) {        \n    console.log(err)        \n    }\n})<\/code><\/pre>\n<p>O resultado deve ser semelhante a este:<\/p>\n<figure style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/delete-post.png\" alt=\"Corpo JSON de uma solicita\u00e7\u00e3o DELETE para o endpoint \/delete-post.\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Corpo JSON de uma solicita\u00e7\u00e3o DELETE para o endpoint \/delete-post.<\/figcaption><\/figure>\n<h2>Como moderar coment\u00e1rios do WordPress com o Node.js<\/h2>\n<p>A <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/comments\/\" target=\"_blank\" rel=\"noopener noreferrer\">API de coment\u00e1rios<\/a> permite que voc\u00ea acesse e manipule coment\u00e1rios no seu site WordPress a partir de um aplicativo. Nessa API, h\u00e1 um endpoint para criar, listar, ler, atualizar e excluir coment\u00e1rios em um site do WordPress.<\/p>\n<p>Vamos supor que voc\u00ea n\u00e3o queira que seu site WordPress publique coment\u00e1rios com a frase &#8220;Follow me&#8221; Neste exemplo, voc\u00ea pode usar uma express\u00e3o <code>regex<\/code> para verificar se h\u00e1 essa frase em cada coment\u00e1rio antes de public\u00e1-lo.<\/p>\n<p>Para fazer isso, use o c\u00f3digo a seguir:<\/p>\n<pre><code class=\"language-js\">app.post(\"\/add-comment\", async (req, res) =&gt; {\n  try {\n    let regex = \/follow me\/i;    \n    let comment = req.body.comment                \n      \n    if(regex.test(comment)) throw \"Oops! Contains the forbidden word\"  \t\t\n\n    const resp = await axios.post(`https:\/\/yourdomain\/wp-json\/wp\/v2\/comments`, req.body)\n\t\n  if(resp.status !== 200) throw \"Something went wrong\"  \t\t\n\t\n  } catch (err) {      \n  \n  console.log(err)\n        \n    }\n})<\/code><\/pre>\n<p>Com essa rota, somente os coment\u00e1rios que n\u00e3o inclu\u00edrem a frase &#8220;Follow me&#8221; ser\u00e3o publicados no site, enquanto coment\u00e1rios como o abaixo n\u00e3o ser\u00e3o publicados:<\/p>\n<figure style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/add-comment.png\" alt=\"Corpo JSON de uma solicita\u00e7\u00e3o POST para o endpoint\/add-comment excluindo coment\u00e1rios com \"Follow me\".\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Corpo JSON de uma solicita\u00e7\u00e3o POST para o endpoint\/add-comment excluindo coment\u00e1rios com &#8220;Follow me&#8221;.<\/figcaption><\/figure>\n<h2>Personaliza\u00e7\u00e3o de sites para usu\u00e1rios<\/h2>\n<p>Ao armazenar prefer\u00eancias do usu\u00e1rio e determinar o pa\u00eds dele, voc\u00ea pode personalizar suas p\u00e1ginas do WordPress para cada usu\u00e1rio.<\/p>\n<p>No Node.js, voc\u00ea pode armazenar os dados do usu\u00e1rio em cookies da rota de login ou inscri\u00e7\u00e3o do seu aplicativo de backend e colocar o cookie no navegador da web do usu\u00e1rio, da seguinte forma:<\/p>\n<pre><code class=\"language-js\">app.post(\"\/sign-up\", async (req, res) =&gt; {\n  \/\/ Sign up user\n    res.cookie(\"cookie_id\", 123456)\n    res.cookie(\"lang\", req.body.language)\n\t\n    res.status(200).json(\"Logged in.\")\n})<\/code><\/pre>\n<p>Ao se inscrever, voc\u00ea obt\u00e9m o idioma preferido do usu\u00e1rio e o envia para o navegador como cookies, juntamente com o endere\u00e7o <code>cookie_id<\/code>.<\/p>\n<p>Agora, com o idioma armazenado no navegador, voc\u00ea pode us\u00e1-lo para buscar publica\u00e7\u00f5es do WordPress no idioma do usu\u00e1rio. Isso exige que voc\u00ea traduza seus artigos no WordPress primeiro. Uma maneira f\u00e1cil de fazer isso \u00e9 integrando o <a href=\"https:\/\/wpml.org\/documentation\/related-projects\/using-wordpress-seo-with-wpml\/\" target=\"_blank\" rel=\"noopener noreferrer\">WPML e o Yoast SEO<\/a> ao seu site WordPress.<\/p>\n<p>Uma vez integrados, voc\u00ea criar\u00e1 subpastas diferentes para outros idiomas:<\/p>\n<ul>\n<li><strong>meudominio.com\/en\/<\/strong><\/li>\n<li><strong>meudominio.com\/es\/<\/strong><\/li>\n<li><strong>meudominio.com\/fr\/<\/strong><\/li>\n<\/ul>\n<p>Ao buscar publica\u00e7\u00f5es do WordPress, voc\u00ea pode obter a lista de publica\u00e7\u00f5es no idioma preferido do usu\u00e1rio, pois ele est\u00e1 armazenado nos cookies.<\/p>\n<pre><code class=\"language-js\">app.get(\"\/get-posts\", async (req, res) =&gt; {\n  try { \n    const lang = req.cookies.lang\n       \n    const resp = await axios.get(`https:\/\/mydomain.com\/${lang}\/wp-json\/wp\/v1\/posts`)\n\t\n  if(resp.status !== 200) throw \"Something went wrong\"\n       \n  } catch (err) {        \n    console.log(err)        \n    }\n})<\/code><\/pre>\n<p>Ao fazer isso, voc\u00ea obt\u00e9m a lista de publica\u00e7\u00f5es com base no idioma que o usu\u00e1rio especificou durante a inscri\u00e7\u00e3o.<\/p>\n<h2>Uso da administra\u00e7\u00e3o personalizada<\/h2>\n<p>Ao estender o endpoint do usu\u00e1rio, voc\u00ea pode criar um painel de controle personalizado para controlar usu\u00e1rios, fun\u00e7\u00f5es e permiss\u00f5es do WordPress. A <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/users\/\" target=\"_blank\" rel=\"noopener noreferrer\">API de usu\u00e1rios<\/a> permite que voc\u00ea acesse e manipule as informa\u00e7\u00f5es do usu\u00e1rio no seu site WordPress a partir de um aplicativo que funcione como a API de coment\u00e1rios.<\/p>\n<p>Por exemplo, se voc\u00ea quiser atualizar a fun\u00e7\u00e3o de um usu\u00e1rio para &#8220;Administrador&#8221;, aqui est\u00e1 a rota que voc\u00ea pode usar:<\/p>\n<pre><code class=\"language-js\">app.put(\"\/update-user\", async (req, res) =&gt; {\n  try {\n    const userID = req.body.id                \n\t\n    const resp = await axios.put(`https:\/\/yourdomain\/wp-json\/wp\/v2\/users\/${userID}`, req.body)\n\t\n    if(resp.status !== 200) throw \"Something went wrong\"\n       \n  } catch (err) {        \n    console.log(err)        \n   }\n})<\/code><\/pre>\n<p>Na solicita\u00e7\u00e3o, passe um objeto que contenha o ID do usu\u00e1rio cujo registro voc\u00ea deseja atualizar, bem como os novos detalhes.<\/p>\n<figure style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/update-user.png\" alt=\"Corpo JSON de uma solicita\u00e7\u00e3o PUT para o endpoint\/update-user.\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Corpo JSON de uma solicita\u00e7\u00e3o PUT para o endpoint\/update-user.<\/figcaption><\/figure>\n<p>Quando voc\u00ea terminar de desenvolver seu servidor Node.js. Voc\u00ea sempre pode hosped\u00e1-lo com facilidade na <a href=\"https:\/\/sevalla.com\/application-hosting\/\">hospedagem de aplicativos da Kinsta<\/a>.<\/p>\n<h2>Resumo<\/h2>\n<p>Ao integrar o Node.js ao seu site WordPress, voc\u00ea abre o potencial para uma maior funcionalidade. Voc\u00ea pode atualizar publica\u00e7\u00f5es, moderar coment\u00e1rios, definir fun\u00e7\u00f5es de usu\u00e1rio e adicionar personaliza\u00e7\u00e3o com base no pa\u00eds do usu\u00e1rio.<\/p>\n<p>Al\u00e9m das funcionalidades que j\u00e1 cobrimos, voc\u00ea pode adicionar pesquisa avan\u00e7ada, manipula\u00e7\u00e3o de temas e revis\u00f5es de artigos. N\u00e3o hesite em consultar o <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/\">Manual da REST API<\/a> e come\u00e7ar a explorar.<\/p>\n<p><em>Qual \u00e9 a sua opini\u00e3o sobre a REST API do WordPress? Voc\u00ea j\u00e1 a utilizou em alguns de seus projetos? Compartilhe conosco na se\u00e7\u00e3o de coment\u00e1rios abaixo!<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como desenvolvedor web, voc\u00ea provavelmente conhece o Node.js e o WordPress. O Node.js \u00e9 um ambiente runtime avan\u00e7ado que executa JavaScript fora do navegador, e o &#8230;<\/p>\n","protected":false},"author":199,"featured_media":66318,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[971,992],"class_list":["post-66317","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-headless-cms","topic-node-js"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Node.js e WordPress: Criando APIs Din\u00e2micas para Aplicativos Personalizados - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Explore a integra\u00e7\u00e3o do Node.js com o WordPress em nosso guia abrangente sobre a cria\u00e7\u00e3o de APIs din\u00e2micas para aplicativos personalizados.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Node.js e WordPress: Criando APIs Din\u00e2micas para Aplicativos Personalizados\" \/>\n<meta property=\"og:description\" content=\"Explore a integra\u00e7\u00e3o do Node.js com o WordPress em nosso guia abrangente sobre a cria\u00e7\u00e3o de APIs din\u00e2micas para aplicativos personalizados.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstapt\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-10T18:09:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-21T20:10:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/how-to-use-nodejs-with-wordpress.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeremy Holcombe\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Explore a integra\u00e7\u00e3o do Node.js com o WordPress em nosso guia abrangente sobre a cria\u00e7\u00e3o de APIs din\u00e2micas para aplicativos personalizados.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/how-to-use-nodejs-with-wordpress.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"Node.js e WordPress: Criando APIs Din\u00e2micas para Aplicativos Personalizados\",\"datePublished\":\"2024-01-10T18:09:28+00:00\",\"dateModified\":\"2024-08-21T20:10:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/\"},\"wordCount\":1305,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/how-to-use-nodejs-with-wordpress.jpg\",\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/\",\"name\":\"Node.js e WordPress: Criando APIs Din\u00e2micas para Aplicativos Personalizados - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/how-to-use-nodejs-with-wordpress.jpg\",\"datePublished\":\"2024-01-10T18:09:28+00:00\",\"dateModified\":\"2024-08-21T20:10:37+00:00\",\"description\":\"Explore a integra\u00e7\u00e3o do Node.js com o WordPress em nosso guia abrangente sobre a cria\u00e7\u00e3o de APIs din\u00e2micas para aplicativos personalizados.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/how-to-use-nodejs-with-wordpress.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/how-to-use-nodejs-with-wordpress.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Node.js\",\"item\":\"https:\/\/kinsta.com\/pt\/topicos\/node-js\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Node.js e WordPress: Criando APIs Din\u00e2micas para Aplicativos Personalizados\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/pt\/#website\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstapt\/\",\"https:\/\/x.com\/kinsta_pt\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"caption\":\"Jeremy Holcombe\"},\"description\":\"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeremyholcombe\/\"],\"url\":\"https:\/\/kinsta.com\/pt\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Node.js e WordPress: Criando APIs Din\u00e2micas para Aplicativos Personalizados - Kinsta\u00ae","description":"Explore a integra\u00e7\u00e3o do Node.js com o WordPress em nosso guia abrangente sobre a cria\u00e7\u00e3o de APIs din\u00e2micas para aplicativos personalizados.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/","og_locale":"pt_PT","og_type":"article","og_title":"Node.js e WordPress: Criando APIs Din\u00e2micas para Aplicativos Personalizados","og_description":"Explore a integra\u00e7\u00e3o do Node.js com o WordPress em nosso guia abrangente sobre a cria\u00e7\u00e3o de APIs din\u00e2micas para aplicativos personalizados.","og_url":"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstapt\/","article_published_time":"2024-01-10T18:09:28+00:00","article_modified_time":"2024-08-21T20:10:37+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/how-to-use-nodejs-with-wordpress.jpg","type":"image\/jpeg"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"Explore a integra\u00e7\u00e3o do Node.js com o WordPress em nosso guia abrangente sobre a cria\u00e7\u00e3o de APIs din\u00e2micas para aplicativos personalizados.","twitter_image":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/how-to-use-nodejs-with-wordpress.jpg","twitter_creator":"@kinsta_pt","twitter_site":"@kinsta_pt","twitter_misc":{"Escrito por":"Jeremy Holcombe","Tempo estimado de leitura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"Node.js e WordPress: Criando APIs Din\u00e2micas para Aplicativos Personalizados","datePublished":"2024-01-10T18:09:28+00:00","dateModified":"2024-08-21T20:10:37+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/"},"wordCount":1305,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/how-to-use-nodejs-with-wordpress.jpg","inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/","url":"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/","name":"Node.js e WordPress: Criando APIs Din\u00e2micas para Aplicativos Personalizados - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/how-to-use-nodejs-with-wordpress.jpg","datePublished":"2024-01-10T18:09:28+00:00","dateModified":"2024-08-21T20:10:37+00:00","description":"Explore a integra\u00e7\u00e3o do Node.js com o WordPress em nosso guia abrangente sobre a cria\u00e7\u00e3o de APIs din\u00e2micas para aplicativos personalizados.","breadcrumb":{"@id":"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#primaryimage","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/how-to-use-nodejs-with-wordpress.jpg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/how-to-use-nodejs-with-wordpress.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/pt\/blog\/node-js-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Node.js","item":"https:\/\/kinsta.com\/pt\/topicos\/node-js\/"},{"@type":"ListItem","position":3,"name":"Node.js e WordPress: Criando APIs Din\u00e2micas para Aplicativos Personalizados"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/pt\/#website","url":"https:\/\/kinsta.com\/pt\/","name":"Kinsta\u00ae","description":"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura","publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/pt\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstapt\/","https:\/\/x.com\/kinsta_pt","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","caption":"Jeremy Holcombe"},"description":"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.","sameAs":["https:\/\/www.linkedin.com\/in\/jeremyholcombe\/"],"url":"https:\/\/kinsta.com\/pt\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/66317","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/comments?post=66317"}],"version-history":[{"count":9,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/66317\/revisions"}],"predecessor-version":[{"id":69354,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/66317\/revisions\/69354"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66317\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66317\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66317\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66317\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66317\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66317\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66317\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66317\/translations\/es"},{"href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66317\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media\/66318"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media?parent=66317"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/tags?post=66317"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/topic?post=66317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}