{"id":52101,"date":"2022-10-20T14:06:02","date_gmt":"2022-10-20T21:06:02","guid":{"rendered":"https:\/\/dhblog.dream.press\/blog\/?p=52101"},"modified":"2025-05-26T11:42:52","modified_gmt":"2025-05-26T18:42:52","slug":"samouczek-wp-rest-api","status":"publish","type":"post","link":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/","title":{"rendered":"Wprowadzenie do WordPress REST API"},"content":{"rendered":"\n<p>Kiedy REST API zosta\u0142o w ko\u0144cu <a href=\"https:\/\/make.wordpress.org\/core\/2015\/10\/28\/rest-api-welcome-the-infrastructure-to-core\/\" target=\"_blank\" rel=\"noopener\">dodane do rdzenia WordPress<\/a>, by\u0142 to koniec d\u0142ugiej podr\u00f3\u017cy. Wielu oczekiwa\u0142o tej zmiany jako najwi\u0119kszego kroku naprz\u00f3d dla WordPress w historii platformy. Jednak\u017ce, je\u015bli nie jeste\u015b zaznajomiony z REST API, mo\u017cesz by\u0107 zdezorientowany, co to wszystko oznacza.<\/p>\n\n\n\n<p>W skr\u00f3cie, dodanie <a href=\"http:\/\/v2.wp-api.org\/\" target=\"_blank\" rel=\"noopener\">WordPress REST API<\/a> przekszta\u0142ci\u0142o WordPressa w w pe\u0142ni funkcjonalny framework aplikacyjny. To znacz\u0105co zwi\u0119kszy\u0142o jego \u201erozszerzalno\u015b\u0107\u201d, czyli zdolno\u015b\u0107 do rozszerzania o nowe funkcje i mo\u017cliwo\u015bci. Ponadto rozszerzy\u0142o potencja\u0142 platformy do komunikacji z innymi stronami i aplikacjami.<\/p>\n\n\n\n<h2 id=\"h-an-introduction-to-rest-apis\" class=\"wp-block-heading\"><b>Wprowadzenie do REST API<\/b><\/h2>\n\n\n\n<p>Zanim zag\u0142\u0119bimy si\u0119 w WordPress REST API, wa\u017cne jest, aby\u015bmy wyja\u015bnili nasz\u0105 terminologi\u0119. Jest to temat, w kt\u00f3rym b\u0119dziemy musieli u\u017cy\u0107 wielu skr\u00f3t\u00f3w, wi\u0119c wyja\u015bnijmy je na pocz\u0105tku.<\/p>\n\n\n\n<p>Przede wszystkim musisz wiedzie\u0107, czym s\u0105 <a href=\"https:\/\/help.dreamhost.com\/hc\/en-us\/articles\/217560167\" target=\"_blank\" rel=\"noopener\">Application Programming Interfaces (APIs)<\/a>. W najprostszych terminach, API to \u015brodek, dzi\u0119ki kt\u00f3remu jeden system umo\u017cliwia innym systemom dost\u0119p do swoich danych.<\/p>\n\n\n\n<p>Na przyk\u0142ad, gdy strona internetowa dodaje przycisk polubienia Facebooka na swojej stronie, robi to poprzez po\u0142\u0105czenie z API Facebooka. Pozwala to stronie internetowej u\u017cywa\u0107 API do odbierania danych (kod przycisku polubienia) i wysy\u0142ania danych (\u017c\u0105danie polubienia).<\/p>\n\n\n\n<p>Wi\u0119c, czym dok\u0142adnie jest REST API? <a href=\"https:\/\/en.wikipedia.org\/wiki\/Representational_state_transfer\" target=\"_blank\" rel=\"noopener\">Representational State Transfer (REST)<\/a> to typ API specyficzny dla us\u0142ug internetowych. Zawiera on standardowy zestaw instrukcji i zasad, co u\u0142atwia wszystkim us\u0142ugom &#8216;RESTful&#8217; wzajemne po\u0142\u0105czenie.<\/p>\n\n\n\n<p>W skr\u00f3cie, REST APIs umo\u017cliwiaj\u0105 wysy\u0142anie \u017c\u0105da\u0144 do zewn\u0119trznego systemu. Przyk\u0142adem mo\u017ce by\u0107 Twitter. Mo\u017cesz u\u017cy\u0107 jego API, aby za\u017c\u0105da\u0107 okre\u015blonej liczby tweet\u00f3w od konkretnego u\u017cytkownika. API nast\u0119pnie zwr\u00f3ci tweety zgodnie z twoim \u017c\u0105daniem, kt\u00f3re mo\u017cesz osadzi\u0107 na swojej stronie za pomoc\u0105 <a href=\"https:\/\/www.dreamhost.com\/blog\/pl\/ucz-sie-html\/\" target=\"_blank\" rel=\"noopener\">HTML<\/a> i <a href=\"https:\/\/www.dreamhost.com\/blog\/pl\/ucz-sie-css\/\" target=\"_blank\" rel=\"noopener\">CSS<\/a>.<\/p>\n\n\n\n<p>Te \u017c\u0105dania s\u0105 realizowane za pomoc\u0105 <a href=\"https:\/\/www.w3schools.com\/js\/js_json_intro.asp\" target=\"_blank\" rel=\"noopener\">JavaScript Object Notation (JSON)<\/a>. Jest to j\u0119zyk specjalnie zaprojektowany do wysy\u0142ania, odbierania i przechowywania danych.<\/p>\n\n\n\n<p>Zajmiemy si\u0119 JSON p\u00f3\u017aniej w tym artykule, ale zalecamy po\u015bwi\u0119ci\u0107 troch\u0119 czasu, aby zapozna\u0107 si\u0119 z tym j\u0119zykiem z g\u00f3ry. Pomo\u017ce to przygotowa\u0107 si\u0119 do korzystania z WordPress REST API oraz zrozumienia niekt\u00f3rych koncepcji, o kt\u00f3rych b\u0119dziemy rozmawia\u0107.<\/p>\n\n\n\n<h2 id=\"h-what-the-wordpress-rest-api-is-and-why-it-s-important\" class=\"wp-block-heading\"><b>Co to jest WordPress REST API (i dlaczego jest wa\u017cne)<\/b><\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"1024\" height=\"332\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/wordpress-wp-rest-api-1024x332.jpg\" alt=\"WordPress Rest API\" class=\"wp-image-37606 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/wordpress-wp-rest-api-1024x332.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/wordpress-wp-rest-api-300x97.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/wordpress-wp-rest-api-768x249.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/wordpress-wp-rest-api-1536x497.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2022\/10\/wordpress-wp-rest-api-600x194.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2022\/10\/wordpress-wp-rest-api-750x243.jpg.webp 750w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/wordpress-wp-rest-api-100x32.jpg 100w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2022\/10\/wordpress-wp-rest-api.jpg.webp 1544w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/332;\" \/><\/figure><\/div>\n\n\n<p><a href=\"http:\/\/v2.wp-api.org\/\" target=\"_blank\" rel=\"noopener\">WordPress REST API<\/a> dzia\u0142a w du\u017cej mierze tak samo, jak przyk\u0142ady, kt\u00f3re ju\u017c om\u00f3wili\u015bmy. Zasadniczo, WordPress REST API daje ci pe\u0142ny dost\u0119p do funkcji WordPressa z dowolnego frameworka kompatybilnego z JSON.<\/p>\n\n\n\n<p>Podobnie jak API Twittera umo\u017cliwia pobieranie i wysy\u0142anie tweet\u00f3w, WordPress REST API mo\u017ce by\u0107 u\u017cywane do zarz\u0105dzania postami, u\u017cytkownikami, kategoriami i wieloma innymi elementami z zewn\u0119trznych platform. Pozwala to na wykorzystanie WordPressa w wielu dot\u0105d nieosi\u0105galnych spos\u00f3bach.<\/p>\n\n\n\n<p>API REST <a href=\"https:\/\/make.wordpress.org\/core\/2013\/06\/17\/json-rest-api\/\" target=\"_blank\" rel=\"noopener\">zosta\u0142o og\u0142oszone<\/a> ju\u017c w 2013 roku. Pocz\u0105tkowo by\u0142o <a href=\"https:\/\/wordpress.org\/plugins\/rest-api\/\" target=\"_blank\" rel=\"noopener\">dodatkiem<\/a>, kt\u00f3ry mia\u0142 zosta\u0107 w\u0142\u0105czony do rdzenia WordPressa w wersji 4.1. Jak to cz\u0119sto bywa, op\u00f3\u017anienia przesun\u0119\u0142y dat\u0119 wydania a\u017c do ostatecznego wdro\u017cenia do rdzenia z wydaniem <a href=\"https:\/\/wordpress.org\/news\/2016\/12\/vaughan\/\" target=\"_blank\" rel=\"noopener\">WordPress 4.7<\/a> trzy lata p\u00f3\u017aniej.<\/p>\n\n\n\n<p>To by\u0142a d\u0142uga, ale warta czekania chwila dla wielu os\u00f3b, kt\u00f3re uwa\u017ca\u0142y WordPress REST API za wa\u017cny krok naprz\u00f3d dla platformy. Mo\u017cesz si\u0119 zastanawia\u0107, dlaczego to dodanie by\u0142o tak wa\u017cne, szczeg\u00f3lnie \u017ce wielu u\u017cytkownik\u00f3w prawdopodobnie nie zauwa\u017cy\u0142o du\u017cego znaczenia. Jak si\u0119 okazuje, w\u0142\u0105czenie REST API by\u0142o fundamentaln\u0105 zmian\u0105 dla WordPressa z wielu powod\u00f3w.<\/p>\n\n\n\n<p>Wprowadzaj\u0105c REST API, WordPress przeszed\u0142 od bycia tylko platform\u0105 do tworzenia stron internetowych do pe\u0142noprawnego frameworku aplikacyjnego. Oznacza to, \u017ce deweloperzy mog\u0105 wykorzysta\u0107 stron\u0119 WordPress do tworzenia aplikacji na urz\u0105dzenia mobilne i sieciowe lub jako repozytorium informacji.<\/p>\n\n\n\n<p>Ta zmiana umo\u017cliwi\u0142a r\u00f3wnie\u017c WordPressowi oddalenie si\u0119 od <a href=\"https:\/\/help.dreamhost.com\/hc\/en-us\/articles\/214202188\" target=\"_blank\" rel=\"noopener\">zale\u017cno\u015bci od PHP<\/a>. Dzi\u0119ki sprawieniu, \u017ce WordPress jest kompatybilny z dowolnym j\u0119zykiem kompatybilnym z JSON, REST API znacznie rozszerzy\u0142o mo\u017cliwo\u015bci dla programist\u00f3w, umo\u017cliwiaj\u0105c im korzystanie z funkcjonalno\u015bci WordPressa z praktycznie dowolnym frameworkiem.<\/p>\n\n\n\n<p>Ostatecznie, REST API zapewnia wi\u0119ksz\u0105 elastyczno\u015b\u0107 interfejs\u00f3w, z kt\u00f3rych mo\u017cna korzysta\u0107 przy pracy z platform\u0105. Sprawi\u0142o to, \u017ce interfejs administracyjny sta\u0142 si\u0119 ca\u0142kowicie opcjonalny, poniewa\u017c teraz mo\u017cna w pe\u0142ni oddzia\u0142ywa\u0107 na swoj\u0105 stron\u0119 WordPress za pomoc\u0105 polece\u0144 JSON.<\/p>\n\n\n\n<p>Teraz przyjrzyjmy si\u0119, jak JSON i REST API wsp\u00f3\u0142pracuj\u0105, aby to umo\u017cliwi\u0107.<\/p>\n\n\n\n<h2 id=\"h-how-the-rest-api-and-json-work-together\" class=\"wp-block-heading\"><b>Jak REST API i JSON dzia\u0142aj\u0105 razem<\/b><\/h2>\n\n\n\n<p>Do tej pory powiniene\u015b mie\u0107 poj\u0119cie o teoretycznych aspektach WordPress REST API. Wi\u0119c, przyjrzyjmy si\u0119 bardziej praktycznej stronie tej technologii. <a href=\"https:\/\/developer.wordpress.org\/rest-api\/\" target=\"_blank\" rel=\"noopener\">Oficjalny podr\u0119cznik<\/a> opisuje korzystanie z REST API w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n\n\n\n<p>\u201eAPI REST WordPress zapewnia punkty ko\u0144cowe API dla typ\u00f3w danych WordPress, kt\u00f3re pozwalaj\u0105 programistom na zdaln\u0105 interakcj\u0119 z witrynami, poprzez wysy\u0142anie i odbieranie obiekt\u00f3w JSON (JavaScript Object Notation).\u201d<\/p>\n\n\n\n<p>Pierwszym s\u0142owem, na kt\u00f3rym musimy si\u0119 skupi\u0107, jest \u201eendpoints\u201d. Najprostszym sposobem na zrozumienie, czym jest endpoint, jest potraktowanie go jako fragmentu danych lub funkcji, kt\u00f3re mo\u017cna wywo\u0142a\u0107 za pomoc\u0105 <a href=\"http:\/\/www.json.org\/JSONRequest.html\" target=\"_blank\" rel=\"noopener\">\u017c\u0105dania JSON<\/a>. Domy\u015blnie WordPress oferuje ogromn\u0105 liczb\u0119 <a href=\"https:\/\/developer.wordpress.org\/rest-api\/extending-the-rest-api\/routes-and-endpoints\/#endpoints\" target=\"_blank\" rel=\"noopener\">standardowych endpoint\u00f3w<\/a> do wykorzystania, ale programi\u015bci mog\u0105 r\u00f3wnie\u017c tworzy\u0107 <a href=\"https:\/\/developer.wordpress.org\/rest-api\/extending-the-rest-api\/adding-custom-endpoints\/\" target=\"_blank\" rel=\"noopener\">niestandardowe endpointy<\/a>.<\/p>\n\n\n\n<p>Aby dotrze\u0107 do punktu ko\u0144cowego, musisz <a href=\"https:\/\/developer.wordpress.org\/rest-api\/extending-the-rest-api\/routes-and-endpoints\/#routes\" target=\"_blank\" rel=\"noopener\">u\u017cy\u0107 &#8216;trasy&#8217;,<\/a> kt\u00f3ra przyjmuje form\u0119 normalnego URL. Mo\u017cesz nawet spr\u00f3bowa\u0107 tego teraz samodzielnie.<\/p>\n\n\n\n<p>Przejd\u017a do swojej w\u0142asnej strony WordPress i dodaj <i>\/wp-json\/wp\/v2<\/i> na ko\u0144cu jej adresu URL. Je\u015bli Twoja strona to <i>http:\/\/example.com<\/i>, wprowad\u017a <i>http:\/\/example.com\/wp-json\/wp\/v2<\/i>.<\/p>\n\n\n\n<p>Kiedy za\u0142adujesz t\u0119 tras\u0119, dotrzesz do punktu ko\u0144cowego, kt\u00f3ry w tym przypadku zwraca ca\u0142\u0105 zawarto\u015b\u0107 i metadane dla Twojej strony w (nieuporz\u0105dkowanym) formacie JSON. Korzystaj\u0105c z r\u00f3\u017cnych tras, mo\u017cesz uzyska\u0107 dost\u0119p do r\u00f3\u017cnych punkt\u00f3w ko\u0144cowych, aby uzyska\u0107 konkretne typy informacji i wykonywa\u0107 r\u00f3\u017cne zadania.<\/p>\n\n\n\n<p>Istniej\u0105 trzy g\u0142\u00f3wne <a href=\"https:\/\/developer.wordpress.org\/rest-api\/requests\/\" target=\"_blank\" rel=\"noopener\">\u017c\u0105dania JSON<\/a>, kt\u00f3rych b\u0119dziesz u\u017cywa\u0107 z REST API, wi\u0119c rzu\u0107my na nie teraz szybkie spojrzenie. S\u0105 to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>GET.<\/b> Ten typ \u017c\u0105dania jest u\u017cywany do pobierania i listowania danych z API. Na przyk\u0142ad, u\u017cy\u0142by\u015b \u017c\u0105dania GET, aby zwr\u00f3ci\u0107 list\u0119 u\u017cytkownik\u00f3w na Twojej stronie lub skompilowa\u0107 posty na blogu z okre\u015blonego okresu czasu.<\/li>\n\n\n\n<li><b>POST.<\/b> To \u017c\u0105danie jest u\u017cywane do wysy\u0142ania danych do API. Pozwala na wprowadzanie nowych informacji do WordPressa, takich jak dodawanie nowych u\u017cytkownik\u00f3w i post\u00f3w lub aktualizacja istniej\u0105cych danych.<\/li>\n\n\n\n<li><b>DELETE.<\/b> Jak sugeruje nazwa, to \u017c\u0105danie s\u0142u\u017cy do usuwania danych. Pozwala to na usuni\u0119cie post\u00f3w, stron, u\u017cytkownik\u00f3w i wi\u0119cej.<\/li>\n\n\n<\/ul>\n\n\n\n<p>GET i POST mog\u0105 czasami by\u0107 u\u017cywane z tym samym punktem ko\u0144cowym do osi\u0105gni\u0119cia r\u00f3\u017cnych rezultat\u00f3w.<\/p>\n\n\n\n<p>Na przyk\u0142ad, sp\u00f3jrzmy na punkt ko\u0144cowy <i>\/me\/settings\/<\/i>. Je\u015bli wykona\u0142by\u015b <a href=\"https:\/\/developer.wordpress.com\/docs\/api\/1.1\/get\/me\/settings\/\" target=\"_blank\" rel=\"noopener\">\u017c\u0105danie GET<\/a> na tym punkcie ko\u0144cowym, otrzyma\u0142by\u015b list\u0119 aktualnych ustawie\u0144 danego u\u017cytkownika. Jednak\u017ce, u\u017cywaj\u0105c <a href=\"https:\/\/developer.wordpress.com\/docs\/api\/1.1\/post\/me\/settings\/\" target=\"_blank\" rel=\"noopener\">\u017c\u0105dania POST<\/a> na tym samym punkcie ko\u0144cowym, m\u00f3g\u0142by\u015b zaktualizowa\u0107 ustawienia.<\/p>\n\n\n\n<div class=\"article-newsletter article-newsletter--gradient\">\n\n\n<h2>Get Content Delivered Straight to Your Inbox<\/h2><p>Subscribe now to receive all the latest updates, delivered directly to your inbox.<\/p><form class=\"nwsl-form\" id=\"newsletter_block_\" novalidate><div class=\"messages\"><\/div><div class=\"form-group\"><label for=\"input_newsletter_block_\"><input type=\"email\"name=\"email\"id=\"input_newsletter_block_\"placeholder=\"Enter your email address\"novalidatedisabled=\"disabled\"\/><\/label><button type=\"submit\"class=\"btn btn--brand\"disabled=\"disabled\"><span>Sign Me Up!<\/span><svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M13.8523 0.42524L12.9323 1.34521C12.7095 1.56801 12.7132 1.9304 12.9404 2.14865L16.7241 5.7823H0.5625C0.251859 5.7823 0 6.03416 0 6.3448V7.6573C0 7.96794 0.251859 8.2198 0.5625 8.2198H16.7241L12.9405 11.8535C12.7132 12.0717 12.7095 12.4341 12.9323 12.6569L13.8523 13.5769C14.072 13.7965 14.4281 13.7965 14.6478 13.5769L20.8259 7.39879C21.0456 7.17913 21.0456 6.82298 20.8259 6.60327L14.6477 0.42524C14.4281 0.205584 14.0719 0.205584 13.8523 0.42524Z\" fill=\"white\"\/>\n<\/svg>\n<\/button><\/div><\/form><\/div>\n\n\n<h2 id=\"h-getting-started-with-the-wordpress-rest-api\" class=\"wp-block-heading\"><b>Rozpoczynanie pracy z WordPress REST API<\/b><\/h2>\n\n\n\n<p>Teraz zastosujemy ca\u0142\u0105 t\u0119 teori\u0119 w praktyce i poka\u017cemy kilka bardzo podstawowych przyk\u0142ad\u00f3w tego, co mo\u017cna zrobi\u0107 z REST API. To tylko przedsmak, kt\u00f3ry pomo\u017ce Ci poczu\u0107 si\u0119 komfortowo przy u\u017cyciu REST API do przetwarzania \u017c\u0105da\u0144 do WordPressa.<\/p>\n\n\n\n<p>Aby zobaczy\u0107 wi\u0119cej przyk\u0142ad\u00f3w, zalecamy sprawdzenie <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/\" target=\"_blank\" rel=\"noopener\">oficjalnej biblioteki referencyjnej<\/a> oraz <a href=\"https:\/\/developer.wordpress.com\/docs\/api\/\" target=\"_blank\" rel=\"noopener\">zasob\u00f3w REST API<\/a>.<\/p>\n\n\n\n<p>Nast\u0119puj\u0105ce techniki wymagaj\u0105 od Ciebie u\u017cywania linii polece\u0144 do przetwarzania \u017c\u0105da\u0144 JSON. Umo\u017cliwia to interakcj\u0119 z Twoj\u0105 stron\u0105 WordPress za pomoc\u0105 interfejsu opartego na tek\u015bcie i wysy\u0142ania prostych polece\u0144.<\/p>\n\n\n\n<p>Je\u015bli nie masz do\u015bwiadczenia w u\u017cywaniu <a href=\"https:\/\/help.dreamhost.com\/hc\/en-us\/articles\/214202238\" target=\"_blank\" rel=\"noopener\">wiersza polece\u0144<\/a>, zalecamy po\u015bwi\u0119cenie troch\u0119 czasu, aby najpierw <a href=\"https:\/\/www.codecademy.com\/learn\/learn-the-command-line\" target=\"_blank\" rel=\"noopener\">nauczy\u0107 si\u0119 podstaw<\/a>. Mo\u017cesz r\u00f3wnie\u017c chcie\u0107 <a href=\"https:\/\/help.dreamhost.com\/hc\/en-us\/articles\/216041267\" target=\"_blank\" rel=\"noopener\">u\u017cy\u0107 SSH<\/a>, aby stworzy\u0107 po\u0142\u0105czenie ze swoj\u0105 stron\u0105.<\/p>\n\n\n\n<p>Na koniec, gdy b\u0119dziesz gotowy, przyjrzyjmy si\u0119 kilku przyk\u0142adom, jak mo\u017cesz u\u017cywa\u0107 WordPress REST API!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-1-return-posts-from-a-site\"><b>1. Zwr\u00f3\u0107 Posty z Strony<\/b><\/h3>\n\n\n\n<p>Chocia\u017c oczywi\u015bcie potrzebujesz odpowiednich uprawnie\u0144 do edycji strony internetowej, mo\u017cna uzyska\u0107 pewne informacje z prawie ka\u017cdej strony WordPress. Wynika to z tego, \u017ce REST API jest sp\u00f3jne we wszystkich instalacjach WordPress.<\/p>\n\n\n\n<p>Jak om\u00f3wili\u015bmy, g\u0142\u00f3wnym powodem istnienia API jest umo\u017cliwienie zewn\u0119trznym aplikacjom dost\u0119pu do cz\u0119\u015bci Twoich danych. W tym przyk\u0142adzie mo\u017cemy <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/posts\/#list-posts\" target=\"_blank\" rel=\"noopener\">pobra\u0107 pojedynczy post<\/a> z oficjalnego bloga informacyjnego WordPress:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">curl https:\/\/wordpress.org\/news\/wp-json\/wp\/v2\/posts\/1<\/pre>\n\n\n\n<p>ID zosta\u0142o ustawione na <i>1<\/i>, co oznacza, \u017ce to zapytanie pobierze pierwszy post na blogu. Mo\u017ce by\u0107 trudno to zauwa\u017cy\u0107, poniewa\u017c JSON nie jest bardzo czytelny, ale w\u015br\u00f3d kodu mo\u017cna znale\u017a\u0107 ca\u0142\u0105 tre\u015b\u0107 i meta-dane dla posta:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"1024\" height=\"292\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/retrieve-post-using-wordpress-rest-api-1024x292.jpg\" alt=\"pobranie wpisu z bloga WordPress za pomoc\u0105 WordPress Rest API\" class=\"wp-image-37605 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/retrieve-post-using-wordpress-rest-api-1024x292.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/retrieve-post-using-wordpress-rest-api-300x86.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/retrieve-post-using-wordpress-rest-api-768x219.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/retrieve-post-using-wordpress-rest-api-1536x438.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2022\/10\/retrieve-post-using-wordpress-rest-api-600x171.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2022\/10\/retrieve-post-using-wordpress-rest-api-750x214.jpg.webp 750w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/retrieve-post-using-wordpress-rest-api-100x29.jpg 100w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2022\/10\/retrieve-post-using-wordpress-rest-api.jpg.webp 1999w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/292;\" \/><\/figure><\/div>\n\n\n<p>Mo\u017cesz nast\u0119pnie u\u017cy\u0107 tych informacji w aplikacji, na przyk\u0142ad, aby wy\u015bwietli\u0107 je, u\u017cywaj\u0105c w\u0142asnego spersonalizowanego stylu.<\/p>\n\n\n\n<p>Je\u015bli chcesz zwr\u00f3ci\u0107 wszystkie posty z bloga, wystarczy usun\u0105\u0107 ID na ko\u0144cu. Jednak prawdopodobnie b\u0119dziesz chcia\u0142 zwr\u00f3ci\u0107 wybran\u0105 liczb\u0119 post\u00f3w. Nast\u0119puj\u0105ce \u017c\u0105danie zwr\u00f3ci trzy najnowsze posty:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">curl https:\/\/wordpress.org\/news\/wp-json\/wp\/v2\/posts\/?per_page=3<\/pre>\n\n\n\n<p>Mo\u017cesz to wypr\u00f3bowa\u0107 samodzielnie na innych stronach, a nawet na swoim w\u0142asnym blogu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-2-update-a-post\"><b>2. Aktualizuj post<\/b><\/h3>\n\n\n\n<p>Teraz spr\u00f3bujmy wprowadzi\u0107 kilka zmian w WordPress za pomoc\u0105 REST API. Aby to zrobi\u0107, musisz by\u0107 zalogowany na stronie, kt\u00f3r\u0105 chcesz zarz\u0105dza\u0107. Na przyk\u0142ad, je\u015bli u\u017cywasz SSH, musisz zalogowa\u0107 si\u0119 na sw\u00f3j serwer.<\/p>\n\n\n\n<p>W tym przyk\u0142adzie <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/posts\/#update-a-post\" target=\"_blank\" rel=\"noopener\">zaktualizujemy istniej\u0105cy post<\/a>. Najpierw u\u017cyjemy \u017c\u0105dania, aby zaktualizowa\u0107 tytu\u0142 posta o ID <i>1<\/i>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">curl -X POST http:\/\/example.com\/wp-json\/wp\/v2\/posts\/1 -d '{\"title\":\"Nowy Tytu\u0142\"}'<\/pre>\n\n\n\n<p>To jest do\u015b\u0107 samoobja\u015bniaj\u0105ce. Argument tytu\u0142u pokazuje, \u017ce aktualizujesz tytu\u0142 posta, kt\u00f3ry jest nast\u0119pnie poprzedzony ci\u0105giem tekstowym zawieraj\u0105cym zast\u0119pstwo.<\/p>\n\n\n\n<p>Istnieje <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/posts\/#arguments\" target=\"_blank\" rel=\"noopener\">wiele innych argument\u00f3w<\/a>, kt\u00f3re mo\u017cna wykorzysta\u0107 do wprowadzenia zmian w po\u015bcie. Na przyk\u0142ad mo\u017cesz u\u017cy\u0107 listy, aby przypisa\u0107 kategorie do posta, opublikowa\u0107 go lub ca\u0142kowicie zmieni\u0107 jego zawarto\u015b\u0107.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-3-delete-a-user\"><b>3. Usu\u0144 U\u017cytkownika<\/b><\/h3>\n\n\n\n<p>Wreszcie, przyjrzyjmy si\u0119, jak mo\u017cna usun\u0105\u0107 dane za pomoc\u0105 REST API. W tym przyk\u0142adzie <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/users\/#delete-a-user\" target=\"_blank\" rel=\"noopener\">usuniemy u\u017cytkownika<\/a> z witryny. Oczywi\u015bcie, musisz by\u0107 zalogowany i upowa\u017cniony do zarz\u0105dzania u\u017cytkownikami, zanim b\u0119dziesz m\u00f3g\u0142 u\u017cy\u0107 tej funkcji.<\/p>\n\n\n\n<p>Nast\u0119pnie mo\u017cesz u\u017cy\u0107 poni\u017cszego \u017c\u0105dania, aby usun\u0105\u0107 u\u017cytkownika o identyfikatorze <i>101<\/i>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">curl -X DELETE http:\/\/example.com\/wp-json\/wp\/v2\/users\/101<\/pre>\n\n\n\n<p>To usunie okre\u015blonego u\u017cytkownika z witryny. Mo\u017cesz u\u017cy\u0107 <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/users\/#arguments\" target=\"_blank\" rel=\"noopener\">dodatkowych parametr\u00f3w<\/a>, aby przypisa\u0107 posty u\u017cytkownika do innego u\u017cytkownika na podstawie jego ID. Alternatywnie, mo\u017cesz wymusi\u0107 trwa\u0142e usuni\u0119cie zamiast dodawania u\u017cytkownika do kosza.<\/p>\n\n\n\n<p>Za pomoc\u0105 tych przyk\u0142ad\u00f3w mo\u017cesz zobaczy\u0107, jak REST API umo\u017cliwia zarz\u0105dzanie tre\u015bci\u0105 na Twojej stronie i \u0142\u0105czenie si\u0119 z innymi. Je\u015bli chcesz dowiedzie\u0107 si\u0119 wi\u0119cej, polecamy zag\u0142\u0119bi\u0107 si\u0119 w <a href=\"https:\/\/developer.wordpress.org\/rest-api\/\" target=\"_blank\" rel=\"noopener\">Podr\u0119cznik REST API<\/a>.<\/p>\n\n\n\n<h2 id=\"h-explore-wordpress-development\" class=\"wp-block-heading\"><b>Poznaj rozw\u00f3j WordPress<\/b><\/h2>\n\n\n\n<p><a href=\"http:\/\/v2.wp-api.org\/\" target=\"_blank\" rel=\"noopener\">WordPress REST API<\/a> by\u0142o ogromnym krokiem naprz\u00f3d dla platformy, z dala od jej korzeni i w stron\u0119 przysz\u0142o\u015bci. Deweloperzy byli podekscytowani od pierwszego dnia, ale je\u015bli nie by\u0142e\u015b zaznajomiony z REST API od pocz\u0105tku, mog\u0142e\u015b by\u0107 zdezorientowany, dlaczego tak si\u0119 sta\u0142o.<\/p>\n\n\n\n<p>Chocia\u017c REST API mo\u017ce wydawa\u0107 si\u0119 przyt\u0142aczaj\u0105ce dla pocz\u0105tkuj\u0105cych, nie musisz by\u0107 do\u015bwiadczonym programist\u0105, aby u\u017cywa\u0107 niekt\u00f3rych podstawowych \u017c\u0105da\u0144. Na przyk\u0142ad, API umo\u017cliwia wykonywanie r\u00f3\u017cnorodnych zada\u0144 na w\u0142asnej stronie (lub innych), takich jak zwracanie post\u00f3w, aktualizowanie post\u00f3w i usuwanie u\u017cytkownik\u00f3w.<\/p>\n\n\n\n<p>Szukasz wydajnego hostingu dla swojej strony WordPress? W Dreamhost, nasze <a href=\"https:\/\/www.dreamhost.com\/pl\/wordpress\/\" target=\"_blank\" rel=\"noopener\">zarz\u0105dzane plany DreamPress<\/a> oferuj\u0105 profesjonalne \u015brodowiska stagingowe, automatyczne kopie zapasowe, wbudowan\u0105 pami\u0119\u0107 podr\u0119czn\u0105 i wi\u0119cej. Sprawd\u017a nasze plany ju\u017c dzi\u015b!<\/p>\n\n\n\n\n<div\n\tclass=\"article-cta-shared article-cta-small\"\n>\n    <div class=\"tr-img-wrap-outer jsLoading\"><img decoding=\"async\" class=\"js-img-lazy \" src=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/themes\/blog2018\/assets\/img\/lazy-loading-transparent.webp\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/themes\/blog2018\/assets\/img\/article-small-ad-cta-placeholder.webp 1x, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/themes\/blog2018\/assets\/img\/article-small-ad-cta-placeholder-x2.webp 2x\"  alt=\"Ad background image\" \/><\/div>\n\n\n\n\n  <div class=\"content-btm\">\n    <h2\n      class=\"h2--md\"\n    >\n      Zr\u00f3b wi\u0119cej z DreamPress\n    <\/h2>\n    <p\n      class=\"p--md\"\n    >\n      Automatyczne aktualizacje, pami\u0119\u0107 podr\u0119czna i silne zabezpieczenia DreamPress zwalniaj\u0105 Ci\u0119 z zarz\u0105dzania WordPress, pozwalaj\u0105c skupi\u0107 si\u0119 na swojej stronie.\n    <\/p>\n\n            <a\n            href=\"https:\/\/www.dreamhost.com\/pl\/wordpress\/zarzadzany\/\"\n                        class=\"btn btn--white-outline btn--sm btn--round\"\n                                    target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            >\n                            Sprawd\u017a Plany                    <\/a>\n\n  <\/div>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Kiedy REST API zosta\u0142o w ko\u0144cu dodane do g\u0142\u00f3wnego sk\u0142adnika WordPress, by\u0142 to koniec d\u0142ugiej podr\u00f3\u017cy. Wielu oczekiwa\u0142o tej zmiany jako najwi\u0119kszego kroku naprz\u00f3d dla WordPress w historii platformy. Jednak\u017ce, je\u015bli nie znasz si\u0119 na REST API, mo\u017cesz by\u0107 zdezorientowany, co to wszystko oznacza. W skr\u00f3cie, [\u2026]<\/p>\n","protected":false},"author":1062,"featured_media":37607,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_metadesc":"","toc_headlines":"[[\"h-an-introduction-to-rest-apis\",\"Wprowadzenie do REST API\"],[\"h-what-the-wordpress-rest-api-is-and-why-it-s-important\",\"Co to jest WordPress REST API (i dlaczego jest wa\u017cne)\"],[\"h-how-the-rest-api-and-json-work-together\",\"Jak REST API i JSON dzia\u0142aj\u0105 razem\"],[\"h-getting-started-with-the-wordpress-rest-api\",\"Rozpoczynanie pracy z WordPress REST API\"],[\"h-explore-wordpress-development\",\"Poznaj rozw\u00f3j WordPress\"]]","hide_toc":false,"footnotes":""},"categories":[14462,14442,14458],"tags":[],"class_list":["post-52101","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-centrum-dewelopera-pl","category-samouczki-pl","category-wordpress-pl"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.3 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Wprowadzenie do WordPress REST API - DreamHost Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wprowadzenie do WordPress REST API\" \/>\n<meta property=\"og:description\" content=\"Kiedy REST API zosta\u0142o w ko\u0144cu dodane do g\u0142\u00f3wnego sk\u0142adnika WordPress, by\u0142 to koniec d\u0142ugiej podr\u00f3\u017cy. Wielu oczekiwa\u0142o tej zmiany jako najwi\u0119kszego kroku naprz\u00f3d dla WordPress w historii platformy. Jednak\u017ce, je\u015bli nie znasz si\u0119 na REST API, mo\u017cesz by\u0107 zdezorientowany, co to wszystko oznacza. W skr\u00f3cie, [\u2026]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/\" \/>\n<meta property=\"og:site_name\" content=\"DreamHost Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DreamHost\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-20T21:06:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-26T18:42:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/WordPress-REST-API-Feature.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"598\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jason Cosper\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:site\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jason Cosper\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Wprowadzenie do WordPress REST API - DreamHost Blog","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:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/","og_locale":"en_US","og_type":"article","og_title":"Wprowadzenie do WordPress REST API","og_description":"Kiedy REST API zosta\u0142o w ko\u0144cu dodane do g\u0142\u00f3wnego sk\u0142adnika WordPress, by\u0142 to koniec d\u0142ugiej podr\u00f3\u017cy. Wielu oczekiwa\u0142o tej zmiany jako najwi\u0119kszego kroku naprz\u00f3d dla WordPress w historii platformy. Jednak\u017ce, je\u015bli nie znasz si\u0119 na REST API, mo\u017cesz by\u0107 zdezorientowany, co to wszystko oznacza. W skr\u00f3cie, [\u2026]","og_url":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/","og_site_name":"DreamHost Blog","article_publisher":"https:\/\/www.facebook.com\/DreamHost\/","article_published_time":"2022-10-20T21:06:02+00:00","article_modified_time":"2025-05-26T18:42:52+00:00","og_image":[{"width":900,"height":598,"url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/WordPress-REST-API-Feature.jpg","type":"image\/jpeg"}],"author":"Jason Cosper","twitter_card":"summary_large_image","twitter_creator":"@dreamhost","twitter_site":"@dreamhost","twitter_misc":{"Written by":"Jason Cosper","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/#article","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/"},"author":{"name":"Jason Cosper","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/2273b8bf7336df78f6d99a89c17253c4"},"headline":"Wprowadzenie do WordPress REST API","datePublished":"2022-10-20T21:06:02+00:00","dateModified":"2025-05-26T18:42:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/"},"wordCount":1973,"publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/WordPress-REST-API-Feature.jpg","articleSection":["Centrum Dewelopera","Samouczki","WordPress"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/","url":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/","name":"Wprowadzenie do WordPress REST API - DreamHost Blog","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/#primaryimage"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/WordPress-REST-API-Feature.jpg","datePublished":"2022-10-20T21:06:02+00:00","dateModified":"2025-05-26T18:42:52+00:00","breadcrumb":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/#primaryimage","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/WordPress-REST-API-Feature.jpg","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/10\/WordPress-REST-API-Feature.jpg","width":900,"height":598,"caption":"WordPress Rest API"},{"@type":"BreadcrumbList","@id":"https:\/\/www-dev.dreamhost.com\/blog\/pl\/samouczek-wp-rest-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dhblog.dream.press\/blog\/"},{"@type":"ListItem","position":2,"name":"Wprowadzenie do WordPress REST API"}]},{"@type":"WebSite","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website","url":"https:\/\/www-dev.dreamhost.com\/blog\/","name":"DreamHost Blog","description":"","publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www-dev.dreamhost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization","name":"DreamHost","url":"https:\/\/www-dev.dreamhost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","contentUrl":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","width":1200,"height":168,"caption":"DreamHost"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DreamHost\/","https:\/\/x.com\/dreamhost","https:\/\/www.instagram.com\/dreamhost\/","https:\/\/www.linkedin.com\/company\/dreamhost\/","https:\/\/www.youtube.com\/user\/dreamhostusa"]},{"@type":"Person","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/2273b8bf7336df78f6d99a89c17253c4","name":"Jason Cosper","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/02\/IMG_4807-scaled.jpeg","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/02\/IMG_4807-scaled.jpeg","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/02\/IMG_4807-scaled.jpeg","caption":"Jason Cosper"},"description":"Jason is DreamHost\u2019s WordPress Product Advocate, based out of Bakersfield, CA. He is currently working on making our DreamPress product even better. In his free time, he likes to curl up on the couch and watch scary movies with his wife Sarah and three very small dogs. Follow him on Twitter.","url":"https:\/\/www-dev.dreamhost.com\/blog\/author\/jasoncosper\/"}]}},"lang":"pl","translations":{"pl":52101,"es":37643,"en":37601,"de":53897,"ru":53939,"pt":53954,"uk":54144,"it":67909,"fr":69414,"nl":69443},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/52101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/users\/1062"}],"replies":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/comments?post=52101"}],"version-history":[{"count":4,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/52101\/revisions"}],"predecessor-version":[{"id":62564,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/52101\/revisions\/62564"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media\/37607"}],"wp:attachment":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media?parent=52101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/categories?post=52101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/tags?post=52101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}