{"id":38525,"date":"2020-12-15T00:44:58","date_gmt":"2020-12-15T08:44:58","guid":{"rendered":"https:\/\/kinsta.com\/?p=4181"},"modified":"2025-02-14T13:14:57","modified_gmt":"2025-02-14T12:14:57","slug":"api-http-wordpress","status":"publish","type":"post","link":"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/","title":{"rendered":"Usando el HTTP API de WordPress"},"content":{"rendered":"<p>El <a href=\"https:\/\/codex.wordpress.org\/HTTP_API\">HTTP API<\/a> de WordPress consiste en un mont\u00f3n de funciones que te ayudar\u00e1n a hacer llamadas HTTP mucho m\u00e1s f\u00e1cilmente. No hay necesidad de jugar con file_get_contents o cURL nunca m\u00e1s, solo una \u00fanica interfaz unificada. Esto es impresionante para interactuar con las API de terceros, especialmente las llenas de REST como Twitter, Facebook, MailChimp, y otros.<\/p>\n<ul>\n<li><a href=\"#basics-of-http\">Los Fundamentos de HTTP<\/a><\/li>\n<li><a href=\"#restful-apis\">Acerca del REST API<\/a><\/li>\n<li><a href=\"#wordpress-http-api\">Usando el HTTP API de WordPress<\/a><\/li>\n<\/ul>\n<h2 id=\"basics-of-http\">Los Fundamentos de HTTP<\/h2>\n<p>Todos hemos visto el HTTP en acci\u00f3n antes. De hecho, si esta es tu primera vez en la web y es la primera cosa que est\u00e1 leyendo, ya has visto a HTTP haciendo su magia. HTTP es un protocolo de red usado para entregar todos los archivos y datos (recursos) a trav\u00e9s de las Interwebs.<\/p>\n<p>B\u00e1sicamente la ecuaci\u00f3n tiene dos partes: la <strong>solicitud HTTP <\/strong>y la <strong>respuesta HTTP<\/strong>, o transacci\u00f3n. Tanto la petici\u00f3n como la respuesta tienen una estructura muy similar, ambas tienen cuatro partes:<\/p>\n<ul>\n<li>Una l\u00ednea inicial<\/li>\n<li>Cero o m\u00e1s l\u00edneas de cabecera<\/li>\n<li>Una l\u00ednea en blanco<\/li>\n<li>Un cuerpo del mensaje opcional<\/li>\n<\/ul>\n<h3>La L\u00ednea Inicial<\/h3>\n<p>Las solicitudes utilizan la l\u00ednea inicial para enviar tres informaciones: el nombre del m\u00e9todo, la ruta y la versi\u00f3n HTTP. Por ejemplo, al ver la p\u00e1gina principal del blog de Kinsta, se ver\u00eda esto en la l\u00ednea inicial de la solicitud.<\/p>\n<pre><code class=\"language-bash\">GET \/blog\/ HTTP\/1.1<\/code><\/pre>\n<p>Las respuestas tambi\u00e9n proporcionan tres piezas de informaci\u00f3n, aunque algo diferentes: La versi\u00f3n HTTP, el c\u00f3digo de la respuesta y una descripci\u00f3n de la respuesta. Al hacer una solicitud al blog principal de Kinsta enviar\u00e1 una respuesta HTTP con la siguiente l\u00ednea inicial:<\/p>\n<pre><code class=\"language-bash\">HTTP\/1.0 200 OK<\/code><\/pre>\n<h3>Cabeceras<\/h3>\n<p>Las cabeceras contienen varios bits de informaci\u00f3n sobre la solicitud o la respuesta. HTTP 1.1 define 46 tipos de cabeceras, pero solo uno es necesario (solo para las peticiones), la cabecera \u00abHost\u00bb. Echa un vistazo a la captura de pantalla de las herramientas de desarrollo de mi Chrome que muestra algunas de las cabeceras enviadas junto con una solicitud al blog principal de Kinsta:<\/p>\n<p><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2015\/07\/Screen-Shot-2015-07-22-at-13.48.11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full \" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2015\/07\/Screen-Shot-2015-07-22-at-13.48.11.png\" alt=\"HTTP request headers sent\" width=\"572\" height=\"167\"><\/a><\/p>\n<h3>Cuerpo<\/h3>\n<p>El cuerpo suele contener datos sobre el recurso solicitado. Si env\u00edas una solicitud GET al blog principal de Kinsta, deber\u00edas recibir el HTML necesario para mostrar la p\u00e1gina (el recurso) en el contenido del cuerpo.<\/p>\n<p>.<\/p>\n<h3>M\u00e1s Informaci\u00f3n<\/h3>\n<p>Es todo lo que necesitas saber ahora mismo sobre el HTTP. Nos centraremos principalmente en el nombre del m\u00e9todo (GET, POST, etc.), las cabeceras y el cuerpo. Si quieres saber m\u00e1s, te recomiendo <a href=\"http:\/\/www.jmarshall.com\/easy\/http\/\">la explicaci\u00f3n de James Marshall sobre el HTTP<\/a>, es un manual muy bien escrito para satisfacer tus necesidades sobre el HTTP.<\/p>\n<h2 id=\"restful-apis\">Acerca del REST API<\/h2>\n<p>La Rest API, o la metodolog\u00eda REST tiene como objetivo proporcionar una forma simple y est\u00e1ndar de interactuar con una aplicaci\u00f3n (aqu\u00ed puedes aprender m\u00e1s sobre los fundamentos <a href=\"https:\/\/kinsta.com\/es\/blog\/rest-api-de-wordpress\/\">de la REST API de WordPress<\/a>). A menudo se utiliza junto con HTTP para crear un sistema de interacciones muy comprensible. Se basa en <strong>rutas <\/strong>y verbos <strong>HTTP<\/strong>.<\/p>\n<p>Los verbos HTTP son los mismos que los nombres de los m\u00e9todos que vimos anteriormente, los m\u00e1s comunes son: GET, POST, PUT, DELETE. Creo que PUT es el \u00fanico ambiguo aqu\u00ed, piensa en ello como un comando de actualizaci\u00f3n. Al usar estos verbos junto con las rutas podemos construir un sistema significativo:<\/p>\n<p><code>GET \/post\/1\/<\/code> se utilizar\u00eda para recuperar el post con el ID 1. <code>DELETE \/post\/1\/<\/code>\u00a0 para borrar el mismo post. Tambi\u00e9n podr\u00edamos usar <code>PUT \/post\/1\/<\/code> para actualizarlo, suministrando la informaci\u00f3n pertinente en el cuerpo y las cabeceras de la solicitud.<\/p>\n<p>Estoy seguro de que puedes ver que con solo a\u00f1adir una versi\u00f3n HTTP a nuestros c\u00f3digos de arriba, tenemos la l\u00ednea inicial de una transacci\u00f3n HTTP, que es solo una de las razones por las que este sistema es tan poderoso.<\/p>\n<h2 id=\"wordpress-http-api\">Usando el\u00a0 HTTP API de WordPress<\/h2>\n<p>Armados con todo ese conocimiento podemos comprender f\u00e1cilmente c\u00f3mo funciona el HTTP API de WordPress. Los cuatro m\u00e9todos utilizados para hacer peticiones e interceptar las respuestas son:<\/p>\n<ul>\n<li><code>wp_remote_get()<\/code><\/li>\n<li><code>wp_remote_post()<\/code><\/li>\n<li><code>wp_remote_head()<\/code><\/li>\n<li><code>wp_remote_request()<\/code><\/li>\n<\/ul>\n<p>Las dos primeras funciones se explican por s\u00ed solas, utilizan los m\u00e9todos GET y POST respectivamente en la solicitud. La tercera funci\u00f3n utiliza el m\u00e9todo HEAD, algo de lo que a\u00fan no hemos hablado. Este m\u00e9todo se utiliza para recuperar solo las cabeceras de una respuesta. Esto puede ahorrar <strong>muchos <\/strong>gastos generales si solo necesitamos algunos metadatos sobre un recurso. La funci\u00f3n final es gen\u00e9rica, se puede especificar qu\u00e9 m\u00e9todo se desea utilizar dentro de los par\u00e1metros de la funci\u00f3n.<\/p>\n<p>Hay cinco funciones adicionales que podemos utilizar para recuperar partes espec\u00edficas de la respuesta. Estas son b\u00e1sicamente atajos para navegar por la masa de datos que recibimos:<\/p>\n<ul>\n<li><code>wp_remote_retrieve_body()<\/code><\/li>\n<li><code>wp_remote_retrieve_header()<\/code><\/li>\n<li><code>wp_remote_retrieve_headers()<\/code><\/li>\n<li><code>wp_remote_retrieve_response_code()<\/code><\/li>\n<li><code>wp_remote_retrieve_response_message()<\/code><\/li>\n<\/ul>\n<h3>Nuestra Primera Solicitud de HTTP<\/h3>\n<p>Hagamos una prueba r\u00e1pida recuperando la informaci\u00f3n de la cabecera del blog de Kinsta. Puedes hacer esto en cualquier lugar dentro de un plugin o un tema, pero obviamente debes estar dentro de un entorno de prueba para asegurarte de no emitir texto no deseado en un sitio en vivo.<\/p>\n<pre><code class=\"language-php\">$response = wp_remote_head( 'https:\/\/kinsta.com\/blog\/' );\nvar_dump( $response )<\/code><\/pre>\n<p>Como puedes ver en la respuesta que obtenemos a continuaci\u00f3n, la secci\u00f3n del cuerpo est\u00e1 vac\u00eda (ya que estamos usando el m\u00e9todo HEAD) y se muestran todos las cabeceras. Para seleccionar solo las cabeceras sin todos los dem\u00e1s miembros del array podr\u00edamos usar la funci\u00f3n <code>wp_remote_retrieve_headers()<\/code>.<\/p>\n<pre><code class=\"language-php\">array (size=5)\n  'headers' =&gt; \n    array (size=13)\n      'server' =&gt; string 'nginx' (length=5)\n      'date' =&gt; string 'Wed, 22 Jul 2015 14:22:07 GMT' (length=29)\n      'content-type' =&gt; string 'text\/html; charset=UTF-8' (length=24)\n      'connection' =&gt; string 'close' (length=5)\n      'vary' =&gt; string 'Accept-Encoding' (length=15)\n      'x-pingback' =&gt; string 'https:\/\/kinsta.com\/xmlrpc.php' (length=29)\n      'x-powered-by' =&gt; string 'HHVM\/3.8.0' (length=10)\n      'link' =&gt; string '; rel=\"https:\/\/github.com\/WP-API\/WP-API\"' (length=68)\n      'x-frame-options' =&gt; string 'DENY' (length=4)\n      'x-content-type-options' =&gt; string 'nosniff' (length=7)\n      'strict-transport-security' =&gt; string 'max-age=31536000' (length=16)\n      'x-kinsta-cache' =&gt; string 'HIT' (length=3)\n      'content-encoding' =&gt; string 'gzip' (length=4)\n  'body' =&gt; string '' (length=0)\n  'response' =&gt; \n    array (size=2)\n      'code' =&gt; int 200\n      'message' =&gt; string 'OK' (length=2)\n  'cookies' =&gt; \n    array (size=0)\n      empty\n  'filename' =&gt; null<\/code><\/pre>\n<h3>Entendiendo a Las API<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2015\/07\/twitter-wordpress-api.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full \" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2015\/07\/twitter-wordpress-api.png\" alt=\"twitter wordpress api\" width=\"800\" height=\"185\"><\/a><\/p>\n<p>La mayor barrera que veo para los desarrolladores es la gran cantidad de cosas nuevas que necesitan poner en marcha para hacer que una llamada a la API funcione. Necesitas saber sobre HTTP, c\u00f3mo hacer peticiones y tambi\u00e9n c\u00f3mo autenticar correctamente, sin eso, cada llamada fallar\u00e1. Veamos un ejemplo a trav\u00e9s de la API de Twitter, ya que tienen una gran documentaci\u00f3n.<\/p>\n<p>Estaremos viendo la autenticaci\u00f3n de <a href=\"https:\/\/dev.twitter.com\/oauth\/application-only\">solo aplicaci\u00f3n<\/a> (que es un flujo m\u00e1s f\u00e1cil), seguir\u00e9 los mismos pasos que Twitter sugiere. Antes de empezar, aseg\u00farate de <a href=\"https:\/\/apps.twitter.com\/\">crear una aplicaci\u00f3n de Twitter<\/a>.<\/p>\n<p>Deber\u00edas poder a\u00f1adir el c\u00f3digo que aparece a continuaci\u00f3n en cualquier lugar dentro de un tema o un plugin, pero como mencionamos antes, \u00a1aseg\u00farate de usar un sitio de prueba!<\/p>\n<h4>Paso 1: Codifica la Clave y C\u00f3digo Secreto del consumidor<\/h4>\n<p>Una vez que hayas creado una aplicaci\u00f3n, debes tener a mano una llave de consumidor y un c\u00f3digo secreto. Para hacer las cosas m\u00e1s f\u00e1ciles, vamos a crear constantes que mantengan esta informaci\u00f3n para nosotros.<\/p>\n<pre><code class=\"language-php\">define( 'TWITTER_CONSUMER_KEY', '12disnir382jeqwdasd23wdasi' );\ndefine( 'TWITTER_CONSUMER_SECRET', '23wdajskduhtrq2c32cuq9r8uhuf' )<\/code><\/pre>\n<p>Los tres pasos para crear una versi\u00f3n codificada de estos se establecen en los documentos:<\/p>\n<ul>\n<li>La URL codifica la clave del consumidor y el c\u00f3digo secreto del consumidor<\/li>\n<li>Concentrarlas con un colon<\/li>\n<li>Base64 codifica toda la cadena<\/li>\n<\/ul>\n<p>En PHP esto ser\u00e1 bastante f\u00e1cil de hacer, \u00a1aqu\u00ed lo tienes!<\/p>\n<pre><code class=\"language-php\">\n$key = urlencode( TWITTER_CONSUMER_KEY );\n$secret = urlencode( TWITTER_CONSUMER_SECRET );\n$concatenated = $key . ':' . $secret;\n$encoded = base64_encode( $concatenated );\n<\/code><\/pre>\n<h4>Paso 2: Obt\u00e9n un Token de Bearer<\/h4>\n<p>En lugar de utilizar tu contrase\u00f1a real, env\u00edas a Twitter tu cadena codificada (que utiliza tus credenciales de la API) y recibes un pase temporal que es v\u00e1lido por un tiempo determinado. Para hacer esto haremos una solicitud HTTP, esto es lo que Twitter tiene que decir:<\/p>\n<ul>\n<li>La petici\u00f3n debe ser una petici\u00f3n HTTP POST.<\/li>\n<li>La solicitud debe incluir una cabecera de autorizaci\u00f3n con el valor de Basic.<\/li>\n<li>La solicitud debe incluir una cabecera de tipo de contenido con el valor de application\/x-www-form-urlencoded;charset=UTF-8.<\/li>\n<li>El cuerpo de la solicitud debe ser grant_type=client_credentials..<\/li>\n<\/ul>\n<p>Empecemos con lo b\u00e1sico. Sabemos que necesitamos una petici\u00f3n POST, as\u00ed que usaremos <code>wp_remote_post()<\/code>. La funci\u00f3n lleva a los par\u00e1metros; el primero es la URL, el segundo contiene argumentos opcionales. La URL ser\u00e1 <code>https:\/\/api.twitter.com\/oauth2\/token<\/code> el segundo par\u00e1metro para tratar todos los dem\u00e1s requisitos.<\/p>\n<pre><code class=\"language-php\">$args = array(\n    'headers' =&gt; array(\n        'Authorization' =&gt; 'Basic ' . $encoded,\n        'Content-Type' =&gt; 'application\/x-www-form-urlencoded;charset=UTF-8'\n    ),\n    'body' =&gt; 'grant_type=client_credentials'\n);\n$response = wp_remote_post( 'https:\/\/api.twitter.com\/oauth2\/token', $args );\n<\/code><\/pre>\n<p>Las cabeceras deben ser agregadas como un arreglo, siendo el tipo de cabecera la clave, el valor del miembro del array; el cuerpo debe ser una cadena. Si tienes \u00e9xito, deber\u00edas ver una respuesta similar a la que se muestra a continuaci\u00f3n.<\/p>\n<pre><code class=\"language-php\">array (size=5)\n  'headers' =&gt; \n    array (size=23)\n      'cache-control' =&gt; string 'no-cache, no-store, must-revalidate, pre-check=0, post-check=0' (length=62)\n      'content-disposition' =&gt; string 'attachment; filename=json.json' (length=30)\n      'content-encoding' =&gt; string 'deflate' (length=7)\n      'content-length' =&gt; string '142' (length=3)\n      'content-type' =&gt; string 'application\/json;charset=utf-8' (length=30)\n      'date' =&gt; string 'Wed, 22 Jul 2015 14:47:37 GMT' (length=29)\n      'expires' =&gt; string 'Tue, 31 Mar 1981 05:00:00 GMT' (length=29)\n      'last-modified' =&gt; string 'Wed, 22 Jul 2015 14:47:37 GMT' (length=29)\n      'ml' =&gt; string 'A' (length=1)\n      'pragma' =&gt; string 'no-cache' (length=8)\n      'server' =&gt; string 'tsa_b' (length=5)\n      'set-cookie' =&gt; string 'guest_id=v1%3A14375720938219946; Domain=.twitter.com; Path=\/; Expires=Fri, 21-Jul-2017 14:47:37 UTC' (length=100)\n      'status' =&gt; string '200 OK' (length=6)\n      'strict-transport-security' =&gt; string 'max-age=631138519' (length=17)\n      'x-connection-hash' =&gt; string 'd8b10926f99dwef93rd7edbe5a71a97a' (length=32)\n      'x-content-type-options' =&gt; string 'nosniff' (length=7)\n      'x-frame-options' =&gt; string 'SAMEORIGIN' (length=10)\n      'x-response-time' =&gt; string '34' (length=2)\n      'x-transaction' =&gt; string 'ef0ebwefweece62ef' (length=16)\n      'x-tsa-request-body-time' =&gt; string '0' (length=1)\n      'x-twitter-response-tags' =&gt; string 'BouncerCompliant' (length=16)\n      'x-ua-compatible' =&gt; string 'IE=edge,chrome=1' (length=16)\n      'x-xss-protection' =&gt; string '1; mode=block' (length=13)\n  'body' =&gt; string '{\"token_type\":\"bearer\",\"access_token\":\"AAAAAAAAAAAAAAAAAAAAAFoafQAAAAAAqg%2BxmuH83hjsod6crH5bKTUX9Arc%3D5dWpp0XCTDjyiXxMC7LDLg8JbzPdGlCsJi2R1qjY1FMksTAFyG\"}' (length=155)\n  'response' =&gt; \n    array (size=2)\n      'code' =&gt; int 200\n      'message' =&gt; string 'OK' (length=2)\n  'cookies' =&gt; \n    array (size=1)\n      0 =&gt; \n        object(WP_Http_Cookie)[303]\n          public 'name' =&gt; string 'guest_id' (length=8)\n          public 'value' =&gt; string 'v1:143757645770219946' (length=21)\n          public 'expires' =&gt; int 1500648457\n          public 'path' =&gt; string '\/' (length=1)\n          public 'domain' =&gt; string '.twitter.com' (length=12)\n  'filename' =&gt; null<\/code><\/pre>\n<p>La principal caracter\u00edstica de todo esto es la se\u00f1al de acceso que se puede encontrar en el cuerpo de la respuesta. Recuperemos eso ahora usando nuestras pr\u00e1cticas funciones de WordPress. Continuando con nuestro ejemplo anterior, podr\u00edamos tomar la clave de acceso usando el siguiente c\u00f3digo:<\/p>\n<pre><code class=\"language-php\">$body = wp_remote_retrieve_body( $response );\n$body = json_decode( $body, true );\n$access_token = $body['access_token'];<\/code><\/pre>\n<h4>Paso 3: Usa el Token de Bearer<\/h4>\n<p>El \u00faltimo paso es simplemente usar este token de Bearer en todas las dem\u00e1s llamadas a la API. Necesitamos agregarlo como una cabecera de \u00abAutorizaci\u00f3n\u00bb con el valor: <code>Bearer [bearer_token]<\/code>. Hagamos una simple llamada a la API que recupere los \u00faltimos tweets de un usuario usando la ruta <a href=\"https:\/\/dev.twitter.com\/rest\/reference\/get\/statuses\/user_timeline\">user_timeline<\/a>.<\/p>\n<pre><code class=\"language-php\">$url = 'https:\/\/api.twitter.com\/1.1\/statuses\/user_timeline.json?screen_name=danielpataki&count=3';\n$args = array(\n    'headers' =&gt; array(\n        'Authorization' =&gt; 'Bearer ' . $access_token,\n    ),\n);\n\n$response = wp_remote_get( $url, $args );\n$tweets = json_decode( wp_remote_retrieve_body($response), true )\n<\/code><\/pre>\n<p>Al final de todo eso, la variable <code>$tweets<\/code> contendr\u00e1 una serie de tweets. Puedes usar varias propiedades de esta matriz para mostrar el tweet o manipular los datos.<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Como puedes ver, usar el HTTP API de WordPress para conectarse a servicios externos no es tan dif\u00edcil. Muchas de las modernas API de hoy en d\u00eda est\u00e1n construidas alrededor de los mismos principios de REST &#8211; una vez que aprendas uno, te acostumbrar\u00e1s a los dem\u00e1s muy r\u00e1pidamente.<\/p>\n<p>Ten en cuenta que cuando la documentaci\u00f3n te pida que uses el cuerpo, usa el cuerpo y cuando te pida la cabecera, solo tienes que a\u00f1adir tantas como sean necesarias. Luego, mira la respuesta, convi\u00e9rtela en una matriz, toma los datos que necesites y \u00fasalos, es as\u00ed de simple.<\/p>\n<p>Si alguien ha trabajado antes con una API particularmente buena o mala, o si tienes algunos consejos y trucos para usar el HTTP API de WordPress, h\u00e1znoslo saber en los comentarios.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the things I love about WordPress is all the tools it gives you. Some of these are well known and much-used, like the options and meta APIs. Some are under-utilized, even though they provide great functionality which could make our lives so much easier. Today I&#8217;ll be looking at one of these, the HTTP API.<\/p>\n","protected":false},"author":18,"featured_media":38527,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[725,172],"topic":[1270,1345],"class_list":["post-38525","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-api","tag-wordpress","topic-api","topic-desarrollo-wordpress"],"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>Usando el HTTP API de WordPress - Kinsta<\/title>\n<meta name=\"description\" content=\"HTTP API de WordPress te ayudar\u00e1 a hacer llamadas HTTP mucho m\u00e1s f\u00e1cilmente. Este es un completo tutorial sobre c\u00f3mo usarlo en WordPress.\" \/>\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\/es\/blog\/api-http-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Usando el HTTP API de WordPress\" \/>\n<meta property=\"og:description\" content=\"HTTP API de WordPress te ayudar\u00e1 a hacer llamadas HTTP mucho m\u00e1s f\u00e1cilmente. Este es un completo tutorial sobre c\u00f3mo usarlo en WordPress.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinsta.es\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-12-15T08:44:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-14T12:14:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2020\/12\/api-http-wordpress.png\" \/>\n\t<meta property=\"og:image:width\" content=\"768\" \/>\n\t<meta property=\"og:image:height\" content=\"480\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daniel Pataki\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"HTTP API de WordPress te ayudar\u00e1 a hacer llamadas HTTP mucho m\u00e1s f\u00e1cilmente. Este es un completo tutorial sobre c\u00f3mo usarlo en WordPress.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2020\/12\/api-http-wordpress.png\" \/>\n<meta name=\"twitter:creator\" content=\"@danielpataki\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Pataki\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/\"},\"author\":{\"name\":\"Daniel Pataki\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/b162216499225e1a4cdd35518f8ef0ff\"},\"headline\":\"Usando el HTTP API de WordPress\",\"datePublished\":\"2020-12-15T08:44:58+00:00\",\"dateModified\":\"2025-02-14T12:14:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/\"},\"wordCount\":1649,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2020\/12\/api-http-wordpress.png\",\"keywords\":[\"API\",\"WordPress\"],\"articleSection\":[\"Desarrollo de WordPress\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/\",\"name\":\"Usando el HTTP API de WordPress - Kinsta\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2020\/12\/api-http-wordpress.png\",\"datePublished\":\"2020-12-15T08:44:58+00:00\",\"dateModified\":\"2025-02-14T12:14:57+00:00\",\"description\":\"HTTP API de WordPress te ayudar\u00e1 a hacer llamadas HTTP mucho m\u00e1s f\u00e1cilmente. Este es un completo tutorial sobre c\u00f3mo usarlo en WordPress.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2020\/12\/api-http-wordpress.png\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2020\/12\/api-http-wordpress.png\",\"width\":768,\"height\":480,\"caption\":\"api-http-wordpress\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Desarrollo WordPress\",\"item\":\"https:\/\/kinsta.com\/es\/secciones\/desarrollo-wordpress\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Usando el HTTP API de WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/es\/#website\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluciones de alojamiento premium, r\u00e1pidas y seguras\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/es\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinsta.es\/\",\"https:\/\/x.com\/Kinsta_ES\",\"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\/es\/#\/schema\/person\/b162216499225e1a4cdd35518f8ef0ff\",\"name\":\"Daniel Pataki\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2a44c1ab807766aeaa5c8d76d4c5ea66?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2a44c1ab807766aeaa5c8d76d4c5ea66?s=96&d=mm&r=g\",\"caption\":\"Daniel Pataki\"},\"description\":\"Hi, my name is Daniel, I'm the CTO here at Kinsta. You may know me from Smashing Magazine, WPMU Dev, Tuts+ and other WordPress\/Development magazines. Aside from WordPress and PHP I spend most of my time around Node, React, GraphQL and other technologies in the Javascript space. When not working on making the best hosting solution in the Universe I collect board games, play table football in the office, travel or play guitar and sing in a pretty bad band.\",\"sameAs\":[\"http:\/\/danielpataki.com\",\"https:\/\/x.com\/danielpataki\"],\"url\":\"https:\/\/kinsta.com\/es\/blog\/author\/danielpataki\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Usando el HTTP API de WordPress - Kinsta","description":"HTTP API de WordPress te ayudar\u00e1 a hacer llamadas HTTP mucho m\u00e1s f\u00e1cilmente. Este es un completo tutorial sobre c\u00f3mo usarlo en WordPress.","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\/es\/blog\/api-http-wordpress\/","og_locale":"es_ES","og_type":"article","og_title":"Usando el HTTP API de WordPress","og_description":"HTTP API de WordPress te ayudar\u00e1 a hacer llamadas HTTP mucho m\u00e1s f\u00e1cilmente. Este es un completo tutorial sobre c\u00f3mo usarlo en WordPress.","og_url":"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinsta.es\/","article_published_time":"2020-12-15T08:44:58+00:00","article_modified_time":"2025-02-14T12:14:57+00:00","og_image":[{"width":768,"height":480,"url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2020\/12\/api-http-wordpress.png","type":"image\/png"}],"author":"Daniel Pataki","twitter_card":"summary_large_image","twitter_description":"HTTP API de WordPress te ayudar\u00e1 a hacer llamadas HTTP mucho m\u00e1s f\u00e1cilmente. Este es un completo tutorial sobre c\u00f3mo usarlo en WordPress.","twitter_image":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2020\/12\/api-http-wordpress.png","twitter_creator":"@danielpataki","twitter_site":"@Kinsta_ES","twitter_misc":{"Escrito por":"Daniel Pataki","Tiempo de lectura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/"},"author":{"name":"Daniel Pataki","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/b162216499225e1a4cdd35518f8ef0ff"},"headline":"Usando el HTTP API de WordPress","datePublished":"2020-12-15T08:44:58+00:00","dateModified":"2025-02-14T12:14:57+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/"},"wordCount":1649,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2020\/12\/api-http-wordpress.png","keywords":["API","WordPress"],"articleSection":["Desarrollo de WordPress"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/","url":"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/","name":"Usando el HTTP API de WordPress - Kinsta","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2020\/12\/api-http-wordpress.png","datePublished":"2020-12-15T08:44:58+00:00","dateModified":"2025-02-14T12:14:57+00:00","description":"HTTP API de WordPress te ayudar\u00e1 a hacer llamadas HTTP mucho m\u00e1s f\u00e1cilmente. Este es un completo tutorial sobre c\u00f3mo usarlo en WordPress.","breadcrumb":{"@id":"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#primaryimage","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2020\/12\/api-http-wordpress.png","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2020\/12\/api-http-wordpress.png","width":768,"height":480,"caption":"api-http-wordpress"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/es\/blog\/api-http-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/es\/"},{"@type":"ListItem","position":2,"name":"Desarrollo WordPress","item":"https:\/\/kinsta.com\/es\/secciones\/desarrollo-wordpress\/"},{"@type":"ListItem","position":3,"name":"Usando el HTTP API de WordPress"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/es\/#website","url":"https:\/\/kinsta.com\/es\/","name":"Kinsta\u00ae","description":"Soluciones de alojamiento premium, r\u00e1pidas y seguras","publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/es\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinsta.es\/","https:\/\/x.com\/Kinsta_ES","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\/es\/#\/schema\/person\/b162216499225e1a4cdd35518f8ef0ff","name":"Daniel Pataki","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2a44c1ab807766aeaa5c8d76d4c5ea66?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2a44c1ab807766aeaa5c8d76d4c5ea66?s=96&d=mm&r=g","caption":"Daniel Pataki"},"description":"Hi, my name is Daniel, I'm the CTO here at Kinsta. You may know me from Smashing Magazine, WPMU Dev, Tuts+ and other WordPress\/Development magazines. Aside from WordPress and PHP I spend most of my time around Node, React, GraphQL and other technologies in the Javascript space. When not working on making the best hosting solution in the Universe I collect board games, play table football in the office, travel or play guitar and sing in a pretty bad band.","sameAs":["http:\/\/danielpataki.com","https:\/\/x.com\/danielpataki"],"url":"https:\/\/kinsta.com\/es\/blog\/author\/danielpataki\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/38525","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/comments?post=38525"}],"version-history":[{"count":8,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/38525\/revisions"}],"predecessor-version":[{"id":38589,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/38525\/revisions\/38589"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/38525\/translations\/en"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/38525\/translations\/de"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/38525\/translations\/it"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/38525\/translations\/es"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/38525\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/38525\/translations\/fr"},{"href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/38525\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media\/38527"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media?parent=38525"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/tags?post=38525"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/topic?post=38525"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}