{"id":233894,"date":"2023-02-24T11:19:00","date_gmt":"2023-02-24T08:19:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233894"},"modified":"2022-11-11T13:02:31","modified_gmt":"2022-11-11T10:02:31","slug":"przewodnik-jak-wysylac-zapytania-do-postow-w-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/przewodnik-jak-wysylac-zapytania-do-postow-w-wordpress\/","title":{"rendered":"Przewodnik: Jak wysy\u0142a\u0107 zapytania do post\u00f3w w WordPress"},"content":{"rendered":"\n<p>Jakie metody s\u0105 dost\u0119pne do tworzenia niestandardowych zapyta\u0144 o posty i kiedy najlepiej ich u\u017cy\u0107? Ten post ma na celu ustalenie solidnego zrozumienia dw\u00f3ch metod odpytywania post\u00f3w, jak uzyska\u0107 dost\u0119p do wynik\u00f3w, jak budowa\u0107 argumenty i wreszcie jak po nich posprz\u0105ta\u0107. Dwie metody, kt\u00f3rym si\u0119 przyjrzymy, to <code>get_posts()<\/code>i <code>WP_Query<\/code>.<\/p>\n<p>Je\u015bli chodzi o tworzenie nowego zapytania o post, tak naprawd\u0119 s\u0105 dwie opcje (w momencie pisania). Wyb\u00f3r tak naprawd\u0119 zale\u017cy tylko od twoich preferencji (i niewielkiego efektu wydajno\u015bci). Jedna opcja mo\u017ce zepsu\u0107 globaln\u0105 p\u0119tl\u0119\/zapytanie, w kt\u00f3rym aktualnie si\u0119 znajdujesz, chyba \u017ce obs\u0142u\u017cysz je poprawnie. W jednej opcji obs\u0142ugujesz obiekty, a w drugiej obs\u0142ugujesz tablic\u0119. Argumenty za dostosowaniem zapytania post s\u0105 jednak identyczne.<\/p>\n<h2>Zapytanie globalne?<\/h2>\n<p>Je\u015bli nie masz pewno\u015bci, co mam na my\u015bli przez \u201ezamieszanie w globalnym zapytaniu&quot;, to jest to. WordPress zawsze tworzy jedno globalne zapytanie, w zale\u017cno\u015bci od tego, na kt\u00f3rej stronie jeste\u015b. Je\u015bli odwiedzaj\u0105cy odwiedza archiwum kategorii, WordPress utworzy\u0142 dla tego zapytanie post Motyw normalnie uzyskiwa\u0142by dost\u0119p do post\u00f3w w zapytaniu za pomoc\u0105 \u201ep\u0119tli&#8221;.Kiedy tworzymy nowe zapytanie z w\u0142asn\u0105 p\u0119tl\u0105 wewn\u0105trz tej p\u0119tli, musimy upewni\u0107 si\u0119, \u017ce globalne zapytanie WordPressa i nasze zapytanie s\u0105 obs\u0142ugiwane oddzielnie.<\/p>\n<p>Je\u015bli jednak chcesz zmodyfikowa\u0107 zapytanie o posty WordPress, to ju\u017c inna historia. Mam <a href=\"http:\/\/awhitepixel.com\/blog\/modifying-wordpress-global-query\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">inny post<\/a>, kt\u00f3ry szczeg\u00f3\u0142owo wyja\u015bnia, jak to zrobi\u0107.<\/p>\n<p>Sp\u00f3jrzmy na dwie opcje, kt\u00f3re mamy i jak sobie z nimi radzimy. Nast\u0119pnie przyjrzymy si\u0119 argumentom dostosowania zapytania. Pami\u0119taj, \u017ce argumenty s\u0105 identyczne dla obu.<\/p>\n<h2><strong>Dwie metody odpytywania post\u00f3w<\/strong><\/h2>\n<p>Mo\u017cesz wyszukiwa\u0107 posty za pomoc\u0105 funkcji <code>get_posts()<\/code>lub tworz\u0105c now\u0105 instancj\u0119 <code>WP_Query.<\/code>. Pierwsza opcja zwraca tablic\u0119 post\u00f3w, a druga obs\u0142uguje obiekt. Poniewa\u017c <code>get_posts()<\/code>zwraca tablic\u0119 zawieraj\u0105c\u0105 tylko posty, zwykle \u0142atwiej jest u\u017cy\u0107 tego w dowolnym miejscu. Je\u015bli jednak chcesz podzieli\u0107 zapytanie na strony, zdecydowanie powiniene\u015b stworzy\u0107 <code>WP_Query<\/code>instancj\u0119.<\/p>\n<p>Funkcja <code>get_posts<\/code>jest funkcj\u0105 opakowuj\u0105c\u0105, <code>WP_Query<\/code>co oznacza, \u017ce \u200b\u200bakceptuje te same argumenty, ale <code>get_posts<\/code>ma kilka dodatkowych argument\u00f3w \u201ealias\u00f3w&#8221;. Strona dokumentacji WordPress dla <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_posts\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">get_posts<\/a> nie wymienia mo\u017cliwych argument\u00f3w (z wyj\u0105tkiem argument\u00f3w alias\u00f3w), ale odsy\u0142a do strony dokumentacji dla <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WP_Query<\/a> dla argument\u00f3w. Argumentom przyjrzymy si\u0119 bli\u017cej p\u00f3\u017aniej.<\/p>\n<p>Je\u015bli wydajno\u015b\u0107 jest problemem (np. witryna zawiera wiele post\u00f3w), <code>get_posts<\/code>jest szybszy ni\u017c u\u017cywanie <code>WP_Query<\/code>, poniewa\u017c pomija obliczenia dotycz\u0105ce paginacji.<\/p>\n<p>Metoda przegl\u0105dania niestandardowego zapytania post\u00f3w r\u00f3\u017cni si\u0119 w zale\u017cno\u015bci od wybranej metody. Powiniene\u015b zna\u0107 powszechn\u0105 p\u0119tl\u0119 WordPress u\u017cywan\u0105 w prawie wszystkich szablonach motyw\u00f3w:<\/p>\n<pre><code>if (have_posts()) {\n    while (have_posts()): the_post();\n        \/\/ Access to each post; you can use template tags here\n    endwhile;\n}<\/code><\/pre>\n<h3><strong>Zap\u0119tlanie za pomoc\u0105 WP_Query<\/strong><\/h3>\n<p>Zap\u0119tlenie wynik\u00f3w u\u017cywania <code>WP_Query<\/code>jest dok\u0142adnie takie samo, z wyj\u0105tkiem tego, \u017ce odwo\u0142ujemy si\u0119 konkretnie do obiektu instancji w p\u0119tli. Musimy r\u00f3wnie\u017c pami\u0119ta\u0107, aby \u201ezresetowa\u0107 stan&#8221; po zako\u0144czeniu p\u0119tli, aby globalny obiekt post powr\u00f3ci\u0142 do poprzedniego stanu. W tym celu u\u017cywamy <code>wp_reset_postdata()<\/code>.<\/p>\n<pre><code>$custom_query = new WP_Query([\/ Arguments here \/]);\nif ($custom_query-&gt;have_posts()) {\n    while ($custom_query-&gt;have_posts()): $custom_query-&gt;the_post();\n        \/\/ Access to each post; you can use template tags here\n    endwhile;\n    wp_reset_postdata();\n}<\/code><\/pre>\n<p>Je\u015bli zrzucisz obiekt utworzony przez <code>WP_Query<\/code>( <code>$custom_query<\/code>w powy\u017cszym przyk\u0142adzie), znajdziesz pe\u0142ne zapytanie i u\u017cyte argumenty. Interesuj\u0105ce cz\u0119\u015bci to w\u0142a\u015bciwo\u015bci &#8217; <code>found_posts<\/code>&#8217; i &#8217; <code>posts<\/code>&#8217;. W\u0142a\u015bciwo\u015b\u0107 \u201e <code>posts<\/code>&#8221; zawiera wynik obiekt\u00f3w postu, przez kt\u00f3re przejdzie p\u0119tla. Liczba wpis\u00f3w pasuj\u0105cych do zapytania jest zwracana w \u201e <code>found_posts<\/code>&#8221; i jest przydatna, je\u015bli chcesz utworzy\u0107 niestandardow\u0105 paginacj\u0119. Podziel t\u0119 warto\u015b\u0107 z ustawieniem WordPress&#8217; dla liczby post\u00f3w na stronie, aby dowiedzie\u0107 si\u0119, ile stron potrzebujesz dla zapytania, lub po prostu odnie\u015b si\u0119 do w\u0142a\u015bciwo\u015bci \u201e <code>max_num_pages<\/code>&#8222;.<\/p>\n<p>Uwaga: gdy u\u017cywasz <code>get_posts<\/code>WordPressa, zwraca tylko w\u0142a\u015bciwo\u015b\u0107 \u201e <code>posts<\/code>&#8221; (kt\u00f3ra jest tablic\u0105) z <code>WP_Query<\/code>obiektu.<\/p>\n<h3><strong>Zap\u0119tlanie za pomoc\u0105 get_posts<\/strong><\/h3>\n<p>U\u017cywaj\u0105c <code>get_posts<\/code>nie u\u017cywamy zwyk\u0142ej \u201ep\u0119tli WordPress&#8221;, zamiast tego u\u017cywamy zwyk\u0142ej p\u0119tli tablicowej PHP. Ka\u017cdy element w tablicy to obiekty post i po zako\u0144czeniu zap\u0119tlania nie jest konieczne resetowanie. Pami\u0119taj, \u017ce w tej p\u0119tli nie s\u0105 dost\u0119pne tagi szablon\u00f3w (takie jak itp.) <code>the_title()<\/code>. <code>the_permalink()<\/code>Musisz odwo\u0142a\u0107 si\u0119 do w\u0142a\u015bciwo\u015bci obiektu posta (np <code>$custom_post-&gt;ID<\/code>. ).<\/p>\n<pre><code>$custom_query = get_posts([\/ Arguments here \/]);\nforeach ($custom_query as $custom_post) {\n    \/\/ Template tags are not available here, refer to the post object properties, for example:\n    echo $custom_post-&gt;post_title;\n}<\/code><\/pre>\n<p>Zalecam nadanie nazw obiektom post\u00f3w w inny spos\u00f3b ni\u017c <code>$post<\/code>. Mo\u017cesz napotka\u0107 problemy podczas pr\u00f3by uzyskania dost\u0119pu do w\u0142a\u015bciwo\u015bci postu (mo\u017ce to odnosi\u0107 si\u0119 do globalnego obiektu post, a nie do wpisu w p\u0119tli).<\/p>\n<p>Je\u015bli chcesz u\u017cywa\u0107 <a href=\"https:\/\/codex.wordpress.org\/Template_tags#Post_tags\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tag\u00f3w szablon\u00f3w<\/a> w celu \u0142atwiejszego dost\u0119pu do informacji o wpisie (takich jak <code>the_title()<\/code>i <code>the_permalink()<\/code>), mo\u017cesz to zrobi\u0107. Zr\u00f3b to, m\u00f3wi\u0105c WordPressowi, aby ustawi\u0142 globalny obiekt postu w p\u0119tli za pomoc\u0105 <code>setup_postdata()<\/code>. Je\u015bli to zrobisz, b\u0119dziesz musia\u0142 zresetowa\u0107 stan za pomoc\u0105 <code>wp_reset_postdata()<\/code>po p\u0119tli.<\/p>\n<pre><code>$custom_query = get_posts([\/ Arguments here \/]);\nforeach ($custom_query as $post) {\n    setup_postdata($post);\n    \/\/ Template tags are available here, for example:\n    the_title();\n}\nwp_reset_postdata();<\/code><\/pre>\n<p>Pami\u0119taj, \u017ce <code>setup_postdata<\/code>obiekty, przez kt\u00f3re przechodzisz (cz\u0119\u015b\u0107 \u201e <code>as<\/code>&#8221; w p\u0119tli foreach), musz\u0105 mie\u0107 nazwy <code>$post<\/code>! W pierwszym przyk\u0142adzie nazwa\u0142em obiekty post <code>$custom_post<\/code>i to nie zadzia\u0142a\u0142oby <code>setup_postdata()<\/code>.<\/p>\n<p>Je\u015bli jednak potrzebujesz dost\u0119pu do podstawowych informacji o wpisie, r\u00f3wnie dobrze mo\u017cesz pomin\u0105\u0107 konfigurowanie globalnego obiektu postu i zamiast tego u\u017cywa\u0107 odpowiednich <code>get_<\/code>tag\u00f3w \u201e-template&#8221; i identyfikatora posta. Na przyk\u0142ad tag <code>the_permalink()<\/code>dzia\u0142a poprawnie tylko wtedy, gdy skonfigurowany jest globalny obiekt postu, ale mo\u017cesz za\u017c\u0105da\u0107 bezpo\u015bredniego linku do posta bez globalnego obiektu postu, u\u017cywaj\u0105c po prostu <code>echo get_the_permalink($custom_post-&gt;ID)<\/code>.<\/p>\n<h2><strong>Argumenty zapytania<\/strong><\/h2>\n<p>Pe\u0142n\u0105 list\u0119 wszystkich mo\u017cliwych argument\u00f3w mo\u017cna znale\u017a\u0107 na <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/#parameters\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">stronie dokumentacji WP_Query<\/a>. Przyk\u0142adami parametr\u00f3w s\u0105 posty z okre\u015blonymi terminami z taksonomii, warto\u015bci meta post\u00f3w, typy post\u00f3w, w\u0142\u0105czanie lub wy\u0142\u0105czanie okre\u015blonych post\u00f3w oraz ca\u0142y szereg opcji porz\u0105dkowania wynik\u00f3w. Jest ich zbyt wiele, aby szczeg\u00f3\u0142owo om\u00f3wi\u0107 ka\u017cdy z nich, ale oto kilka typowych przyk\u0142ad\u00f3w argument\u00f3w za zapytaniami o posty.<\/p>\n<h3>Przyk\u0142ad 1: Powi\u0105zane posty z tej samej kategorii<\/h3>\n<p>Za\u0142\u00f3\u017cmy, \u017ce chcesz wy\u015bwietli\u0107 \u201epokrewne posty&#8221; na ko\u0144cu jednego posta. Powinien pokazywa\u0107 losowy wyb\u00f3r 3 post\u00f3w, kt\u00f3re s\u0105 w tej samej kategorii co aktualny post i powinien wyklucza\u0107 bie\u017c\u0105cy post z wyniku.<\/p>\n<pre><code>$post_id = get_the_ID();  \/\/ current post ID\n$custom_query = new WP_Query([\n    'post_type' =&gt; 'post',\n    'posts_per_page' =&gt; 3,\n    'category__in' =&gt; wp_get_post_categories($post_id),\n    'post__not_in' =&gt; [$post_id],\n    'orderby' =&gt; 'rand'\n]);<\/code><\/pre>\n<p>Argumenty s\u0105 do\u015b\u0107 oczywiste. Prosz\u0119 tylko o <code>post<\/code>&#8217; w &#8217; <code>post_type<\/code>&#8217; i maksymalnie 3 posty w &#8217; <code>posts_per_page'<\/code>.<\/p>\n<p>Do odpytywania post\u00f3w w kategoriach mo\u017cesz zbudowa\u0107 <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/#taxonomy-parameters\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tax_query<\/a> lub u\u017cy\u0107 prostszego \u201e <code>category__in<\/code>&#8221; (Uwaga: dzia\u0142a tylko dla kategorii post\u00f3w). W powy\u017cszym przyk\u0142adzie u\u017cywam, <code>wp_get_post_categories()<\/code>aby uzyska\u0107 tablic\u0119 identyfikator\u00f3w termin\u00f3w przypisanych do podanego posta i u\u017cy\u0107 tego jako argumentu \u201e <code>category__in<\/code>&#8222;.<\/p>\n<p>Mo\u017cesz wykluczy\u0107 identyfikatory post\u00f3w za pomoc\u0105 \u201e <code>post__not_in<\/code>&#8222;, podczas gdy ja poda\u0142em bie\u017c\u0105cy identyfikator posta. Na koniec poprosi\u0142em o losow\u0105 kolejno\u015b\u0107 post\u00f3w, ustawiaj\u0105c &#8217; <code>rand<\/code>&#8217; w &#8217; <code>orderby<\/code>&#8217;. Mo\u017cesz poda\u0107 np. &#8217; <code>title<\/code>&#8217; lub &#8217; <code>date<\/code>&#8217;, aby zam\u00f3wi\u0107 je w inny spos\u00f3b. Zajrzyj do <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/#order-orderby-parameters\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentacji zam\u00f3wienia<\/a>, aby zobaczy\u0107, co jest mo\u017cliwe.<\/p>\n<h3>Przyk\u0142ad 2: Wszystkie posty z niestandardowego typu postu z wieloma argumentami porz\u0105dkowania<\/h3>\n<p>W tym przyk\u0142adzie zak\u0142adamy, \u017ce masz niestandardowy typ posta \u201e <code>book<\/code>&#8222;, aw niestandardowym szablonie strony chcesz wy\u015bwietli\u0107 wszystkie opublikowane ksi\u0105\u017cki. Chcesz uporz\u0105dkowa\u0107 posty przede wszystkim wed\u0142ug menu_order (atrybut strony, jest to liczba, kt\u00f3r\u0105 mo\u017cesz ustawi\u0107 na post), a po drugie wed\u0142ug tytu\u0142u posta.<\/p>\n<pre><code>$custom_query = new WP_Query([\n    'post_type' =&gt; 'book',\n    'posts_per_page' =&gt; -1,\n    'orderby' =&gt; ['meny_order' =&gt; 'ASC', 'title' =&gt; 'DESC']\n]);<\/code><\/pre>\n<p>Ponownie, argumenty s\u0105 do\u015b\u0107 oczywiste. Prosz\u0119 o wpisanie wpisu \u201e <code>book<\/code>&#8221; jako \u201e <code>post_type<\/code>&#8222;. Gdy ustawisz &#8217; <code>posts_per_page<\/code>&#8217; na -1, pobierze wszystkie (opublikowane posty, chyba \u017ce okre\u015blisz co\u015b innego w <code>post_status<\/code>argumencie &#8217; &#8217;). Na koniec dostarczam tablic\u0119 \u201e <code>orderby<\/code>&#8222;, aby powiedzie\u0107 WordPressowi, aby sortowa\u0142 posty g\u0142\u00f3wnie wed\u0142ug kolejno\u015bci menu w kolejno\u015bci rosn\u0105cej, a po drugie tytu\u0142 posta w kolejno\u015bci malej\u0105cej.<\/p>\n<h3>Przyk\u0142ad 3: posty z niestandardowymi metadanymi<\/h3>\n<p>Za\u0142\u00f3\u017cmy, \u017ce masz niestandardowy typ wpisu \u201e <code>book<\/code>&#8221; i chcesz wyszuka\u0107 wszystkie ksi\u0105\u017cki, kt\u00f3re s\u0105 nieopublikowane lub ksi\u0105\u017cki opublikowane w latach 1990\u20132019.<\/p>\n<pre><code>$custom_query = new WP_Query([\n    'post_type' =&gt; 'book',\n    'posts_per_page' =&gt; -1,\n    'meta_query' =&gt; [\n        'relation' =&gt; 'OR',\n        [\n            'key' =&gt; 'book_status',\n            'value' =&gt; 'unpublished',\n            'compare' =&gt; '='\n        ],\n        [\n            'key' =&gt; 'year_published',\n            'value' =&gt; [1990, 2019],\n            'type' =&gt; 'numeric',\n            'compare' =&gt; 'BETWEEN'\n        ]\n    ]\n]);<\/code><\/pre>\n<p>Tworzenie zapytania przy u\u017cyciu meta postu najlepiej wykona\u0107 za pomoc\u0105 <code>meta_query<\/code>(dla bardzo prostych argument\u00f3w meta mo\u017cna u\u017cy\u0107 <code>meta_key<\/code>i <code>meta_value<\/code>bezpo\u015brednio). Argument \u201e <code>meta_query<\/code>&#8221; wymaga tablicy, gdzie ka\u017cdy argument jest tablic\u0105. Mo\u017cesz kontrolowa\u0107 relacj\u0119 mi\u0119dzy ka\u017cdym argumentem za pomoc\u0105 &#8217; <code>relation<\/code>&#8217;, kt\u00f3re ustawi\u0142em na &#8217; <code>OR<\/code>&#8217; w powy\u017cszym przyk\u0142adzie.<\/p>\n<p>Podaj\u0119 dwa argumenty metadanych do \u201e <code>meta_query<\/code>&#8222;. Pierwszy po prostu por\u00f3wnuje metaklucz \u201e <code>book_status<\/code>&#8221; z tekstem \u201e <code>unpublished<\/code>&#8221; i je\u015bli jest r\u00f3wny, zostanie uwzgl\u0119dniony. W drugim argumencie ka\u017c\u0119 WordPressowi pobra\u0107 dowoln\u0105 warto\u015b\u0107 w metakluczu \u201e <code>year_published<\/code>&#8222;, kt\u00f3ra znajduje si\u0119 mi\u0119dzy liczbami 1990 a 2019.<\/p>\n<h2>Wniosek<\/h2>\n<p>Powiniene\u015b teraz mie\u0107 podstawow\u0105 wiedz\u0119 na temat dw\u00f3ch metod odpytywania post\u00f3w. Nie ma du\u017cej r\u00f3\u017cnicy, poniewa\u017c mo\u017cesz zbudowa\u0107 to samo zapytanie za pomoc\u0105 obu, ale spos\u00f3b obs\u0142ugi tych dw\u00f3ch jest inny. Trzy podane przyk\u0142ady argument\u00f3w zapyta\u0144 dotykaj\u0105 tylko powierzchni tego, jakie zapytania mo\u017cesz zbudowa\u0107. Zapoznaj si\u0119 z <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentacj\u0105 WP_Query,<\/a> aby uzyska\u0107 pe\u0142ny przegl\u0105d z wieloma przyk\u0142adami.<\/p>\n<p>Je\u015bli jeste\u015b ciekawy, jak zmodyfikowa\u0107 globalne zapytanie, kt\u00f3re wykonuje WordPress, mam <a href=\"http:\/\/awhitepixel.com\/blog\/modifying-wordpress-global-query\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">osobny post<\/a>, kt\u00f3ry szczeg\u00f3\u0142owo o tym m\u00f3wi.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym przewodniku przyjrzymy si\u0119 dw\u00f3m metodom odpytywania post\u00f3w w WordPressie (get_posts i WP_Query), jak uzyska\u0107 dost\u0119p do ka\u017cdego posta i budowa\u0107 argumenty.<\/p>\n","protected":false},"author":1,"featured_media":224094,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[897,721,721,919,897,919,1110,805,805,845,929,929,845,866,866],"tags":[1169],"class_list":["post-233894","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kod","category-deweloper","category-inny","category-n-a","category-php-7","category-samouczki","category-tematy","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/233894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=233894"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/233894\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/224094"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=233894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=233894"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=233894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}