{"id":233425,"date":"2023-02-13T11:22:00","date_gmt":"2023-02-13T08:22:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233425"},"modified":"2022-11-10T23:37:41","modified_gmt":"2022-11-10T20:37:41","slug":"kompletny-przewodnik-jak-dynamicznie-wypelniac-pola-w-formach-grawitacyjnych","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/kompletny-przewodnik-jak-dynamicznie-wypelniac-pola-w-formach-grawitacyjnych\/","title":{"rendered":"Kompletny przewodnik: Jak dynamicznie wype\u0142nia\u0107 pola w formach grawitacyjnych"},"content":{"rendered":"\n<p>Budowanie prostych lub z\u0142o\u017conych formularzy w <a href=\"https:\/\/www.gravityforms.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gravity Forms<\/a> jest \u0142atwe i szybkie. Jedn\u0105 z funkcjonalno\u015bci oferowanych przez Gravity Forms jest umo\u017cliwienie warunkowej wst\u0119pnej selekcji lub wst\u0119pnego wype\u0142nienia p\u00f3l w formularzu. Jest to przydatne, gdy masz ten sam formularz na wielu stronach kontaktowych dla ka\u017cdego dzia\u0142u i chcesz wst\u0119pnie wybra\u0107 odpowiedni dzia\u0142 w formularzu. Lub umieszczasz formularz zapytania na stronach produkt\u00f3w lub us\u0142ug i chcesz automatycznie uzupe\u0142nia\u0107 informacje o bie\u017c\u0105cym produkcie lub us\u0142udze w ka\u017cdym przes\u0142anym zg\u0142oszeniu.<\/p>\n<p>Mo\u017cesz dynamicznie wst\u0119pnie wybiera\u0107 lub wst\u0119pnie wype\u0142nia\u0107 pola na kilka sposob\u00f3w, a tak\u017ce dynamicznie zast\u0119powa\u0107 mo\u017cliwe wybory w menu rozwijanym, grupie przycisk\u00f3w opcji lub p\u00f3l wyboru. Dynamicznie wype\u0142niane pole mo\u017ce by\u0107 polem widocznym, kt\u00f3re u\u017cytkownik mo\u017ce edytowa\u0107, lub mo\u017ce zosta\u0107 przekierowane do pola ukrytego, aby czytelnik przes\u0142anych formularzy otrzyma\u0142 wa\u017cne informacje.<\/p>\n<h2>Cztery sposoby dynamicznego wype\u0142niania p\u00f3l<\/h2>\n<p>W tym przewodniku przyjrzymy si\u0119 czterem sposobom dynamicznego wype\u0142niania p\u00f3l w formularzu Gravity Forms. Trzy z nich mo\u017cesz wykona\u0107 bez dotykania kodu! Ale je\u015bli chcesz dynamicznie modyfikowa\u0107 mo\u017cliwe wybory w grupie wyboru, grupie przycisk\u00f3w radiowych lub polach wyboru, b\u0119dziesz musia\u0142 napisa\u0107 troch\u0119 kodu PHP. Zobaczymy, jak to zrobi\u0107 na samym ko\u0144cu.<\/p>\n<p>Mo\u017cesz dynamicznie wype\u0142nia\u0107 pola poprzez:<\/p>\n<ul>\n<li>Dodanie dodatkowych informacji w adresie URL.<\/li>\n<li>Podaj dodatkowe informacje do skr\u00f3conego kodu osadzania Gravity Forms.<\/li>\n<li>Definiowanie dodatkowych informacji do Gravity Forms Block (je\u015bli u\u017cywasz WordPressa z Gutenbergiem).<\/li>\n<li>U\u017cywanie filtr\u00f3w z kodem PHP.<\/li>\n<\/ul>\n<p>Ale najpierw musimy przej\u015b\u0107 przez proces aktywacji dynamicznej populacji pola.<\/p>\n<h2>Aktywacja pola, aby umo\u017cliwi\u0107 dynamiczn\u0105 populacj\u0119<\/h2>\n<p>Pierwszym krokiem, niezale\u017cnie od metody u\u017cytej do wype\u0142nienia pola, jest aktywacja tego w samym polu.<\/p>\n<p>W edycji formularza rozwi\u0144 pole, a wewn\u0105trz zak\u0142adki \u201eZaawansowane&quot; znajdziesz pole wyboru \u201eZezwalaj na dynamiczne wype\u0142nianie pola&#8221;. Zaznacz to, a pojawi si\u0119 nowy tekst umo\u017cliwiaj\u0105cy zdefiniowanie nazwy parametru. cokolwiek chcesz, ale powinno by\u0107 wyj\u0105tkowe i bez spacji.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153486-61e50e767c316.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153486-61e50e767c316.png\" alt=\"Kompletny przewodnik: Jak dynamicznie wype\u0142nia\u0107 pola w formach grawitacyjnych\" ><\/a><\/p>\n<p>Zapisz formularz i mo\u017cesz zdecydowa\u0107, kt\u00f3rej metody chcesz u\u017cy\u0107 do jego wype\u0142nienia.<\/p>\n<h2>Dynamiczne wype\u0142nianie z parametr\u00f3w adresu URL<\/h2>\n<p>Mo\u017cesz do\u0142\u0105czy\u0107 parametry GET do \u0142\u0105cza do strony, na kt\u00f3rej osadzony jest formularz, na przyk\u0142ad, je\u015bli \u0142\u0105cze znajduje si\u0119 w innym tek\u015bcie posta lub jest niestandardowym \u0142\u0105czem w menu WordPress.<\/p>\n<p>Po prostu dodaj zmienne zapytania w parach klucz-warto\u015b\u0107, z nazw\u0105 parametru jako kluczem i ich warto\u015bci\u0105, jak\u0105 chcesz, aby ich warto\u015b\u0107 by\u0142a. Mo\u017cliwe jest dodanie wielu par klucz-warto\u015b\u0107, je\u015bli chcesz wype\u0142ni\u0107 wiele p\u00f3l w formularzu, po prostu oddziel ka\u017cd\u0105 par\u0119 za pomoc\u0105 \u201e&#038;&#8221;.<\/p>\n<p>Zak\u0142adaj\u0105c, \u017ce Tw\u00f3j formularz istnieje na tej stronie: &#8221; <code>https:\/\/example.com\/contact-me\/<\/code>&#8222;, a nazwa parametru to <code>awp_populate_me<\/code>mo\u017cesz wype\u0142ni\u0107 pole u\u017cywaj\u0105c tego adresu URL: &#8221; <code>https:\/\/example.com\/contact-me\/?awp_populate_me=Hello<\/code>&#8222;.<\/p>\n<p>Pami\u0119taj, \u017ce adresy URL musz\u0105 by\u0107 odpowiednio zakodowane. Na przyk\u0142ad nie mo\u017cna po prostu dodawa\u0107 spacji lub znak\u00f3w specjalnych bezpo\u015brednio jako warto\u015bci parametru. Zapewnienie \u201eWitaj \u015bwiecie!&#8221; jako warto\u015b\u0107 by\u0142aby \u201e <code>Hello%20world%21<\/code>&#8222;. Istnieje wiele narz\u0119dzi online do kodowania adres\u00f3w URL, je\u015bli chcesz i\u015b\u0107 w ten spos\u00f3b.<\/p>\n<h2>Dynamicznie wype\u0142niane z shortcode<\/h2>\n<p>Wszystkie formularze s\u0105 wstawiane za pomoc\u0105 skr\u00f3conego kodu. Mo\u017cesz dynamicznie wype\u0142nia\u0107 pola bezpo\u015brednio w tym kr\u00f3tkim kodzie. Ta metoda mo\u017ce by\u0107 przydatna, je\u015bli u\u017cywasz tego samego formularza w wielu postach (np. rejestrujesz uczestnik\u00f3w kilku r\u00f3\u017cnych wydarze\u0144 lub kurs\u00f3w) i musisz poda\u0107 co\u015b unikalnego, aby wiedzie\u0107, z kt\u00f3rego wydarzenia lub kursu pochodzi formularz\u2026\u2026<\/p>\n<p>Zwykle po osadzeniu formularza powstaje kr\u00f3tki kod, kt\u00f3ry wygl\u0105da mniej wi\u0119cej tak:<code>[gravityforms id=\"1\" title=\"Contact us\"]<\/code><\/p>\n<p>Edytuj kr\u00f3tki kod i dodaj zestaw kluczy <code>field_values<\/code>do ci\u0105gu, kt\u00f3ry zawiera nazw\u0119 parametru r\u00f3wn\u0105 \u017c\u0105danej warto\u015bci. Na przyk\u0142ad ustawienie parametru <code>awp_populate_me<\/code>na \u201eHello World&#8221; odbywa si\u0119 w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<pre><code>[gravityforms id=\"1\" title=\"Contact us\" field_values=\"awp_populate_me=Hello World\"]<\/code><\/pre>\n<p>Je\u015bli chcesz wype\u0142ni\u0107 wiele p\u00f3l, dodaj \u201e&#038;&#8221; pomi\u0119dzy nimi, na przyk\u0142ad:<\/p>\n<pre><code>[gravityforms id=\"1\" title=\"Contact us\" field_values=\"awp_populate_me=Hello World&amp;awp_another_field=Hello to you too\"]<\/code><\/pre>\n<h2>Dynamicznie wype\u0142niane z Block w Gutenberg<\/h2>\n<p>Je\u015bli masz GravityForms w wersji 2.4.13+ i WordPress z Gutenbergiem (WordPress 5+), mo\u017cesz doda\u0107 Gravity Forms jako blok. W ramach tego bloku masz r\u00f3wnie\u017c metod\u0119 wype\u0142niania p\u00f3l.<\/p>\n<p>Dodaj blok \u201eFormularze&#8221; do Gutenberga i wybierz sw\u00f3j formularz. Blok powinien zmieni\u0107 si\u0119 w podgl\u0105d formularza. W prawym panelu rozwi\u0144 Zaawansowane, a znajdziesz obszar tekstowy oznaczony \u201eWarto\u015bci p\u00f3l&#8221;. W tym obszarze tekstowym mo\u017cesz wpisa\u0107 nazwy i warto\u015bci parametr\u00f3w, tak jakby\u015b wpisywa\u0142 kr\u00f3tki kod. Np. \u201e <code>awp_populate_me=Hello World!<\/code>&#8222;<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153486-61e50e777b45f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153486-61e50e777b45f.png\" alt=\"Kompletny przewodnik: Jak dynamicznie wype\u0142nia\u0107 pola w formach grawitacyjnych\" ><\/a><\/p>\n<h2>Dynamicznie wype\u0142niane z kodu<\/h2>\n<p>I na koniec, je\u015bli wolisz wype\u0142nia\u0107 pola za pomoc\u0105 kodu PHP, istniej\u0105 filtry do tego. Mo\u017cesz umie\u015bci\u0107 ten kod w motywie <code>functions.php<\/code>.<\/p>\n<p>Spos\u00f3b kodowania zale\u017cy od rodzaju pola; jak mo\u017cna si\u0119 domy\u015bli\u0107, wype\u0142nianie (zast\u0119powanie wszystkich opcji) w zaznaczeniu, pola wyboru lub grupa radiowa musz\u0105 by\u0107 obs\u0142ugiwane inaczej ni\u017c tylko wype\u0142nianie pojedynczego pola tekstowego.<\/p>\n<h3>Wype\u0142nianie pojedynczego pola warto\u015bci<\/h3>\n<p>Wype\u0142nianie pola, kt\u00f3re ma pojedyncz\u0105 warto\u015b\u0107 (dotyczy to pola tekstowego, obszaru tekstowego, pola e-mail, pola telefonu itp.) mo\u017cna \u0142atwo wykona\u0107 za pomoc\u0105 filtrowania <code>gform_field_value_&lt;parameter name&gt;<\/code>. W naszym przyk\u0142adzie:<\/p>\n<pre><code>add_filter('gform_field_value_awp_populate_me', function($value) {\n    return 'Hello world!';\n});<\/code><\/pre>\n<p>Mo\u017cesz r\u00f3wnie\u017c u\u017cy\u0107 tego filtra, aby wst\u0119pnie wybra\u0107 opcj\u0119 w polu wielowarto\u015bciowym, np. wybierz (menu rozwijane), przyciski opcji lub pola wyboru.<\/p>\n<h3>Wype\u0142nianie przycisk\u00f3w wyboru lub opcji<\/h3>\n<p>Je\u015bli po prostu interesuje Ci\u0119 wst\u0119pny wyb\u00f3r opcji, post\u0119puj zgodnie z powy\u017cszym przewodnikiem dotycz\u0105cym wype\u0142niania pojedynczego pola warto\u015bci. Ten kod jest przeznaczony do dostosowywania lub zast\u0119powania mo\u017cliwych wybor\u00f3w, kt\u00f3re otrzymujesz w terenie.<\/p>\n<h4>Filtry renderowania formularzy Gravity Forms<\/h4>\n<p>Filtr <code>gform_pre_render<\/code>pozwala nam modyfikowa\u0107 formularz tu\u017c przed jego wy\u015bwietleniem. Ale dokonuj\u0105c tutaj zmian, powinni\u015bmy upewni\u0107 si\u0119, \u017ce nasze zmiany s\u0105 stosowane we wszystkich przypadkach; wi\u0119c musimy si\u0119 r\u00f3wnie\u017c pod\u0142\u0105czy\u0107 <code>gform_admin_pre_render<\/code>(odpowiedni filtr pre_render, ale wp\u0142ywa na edycj\u0119 administratora\/formularza), <code>gform_pre_validation<\/code>(odpowiedzialny za walidacj\u0119 formularza przed przes\u0142aniem) i <code>gform_pre_submission_filter<\/code>(filtr po walidacji, ale przed zapisaniem wpisu). Nie martw si\u0119, u\u017cywamy tej samej funkcji dla wszystkich tych filtr\u00f3w.<\/p>\n<p>Mo\u017cesz je filtrowa\u0107 bezpo\u015brednio lub mo\u017cesz poda\u0107 podkre\u015blenie i identyfikator formularza po nazwie filtru, aby filtrowa\u0107 tylko okre\u015blony formularz. Np <code>gform_pre_render_1<\/code>. b\u0119dzie uruchamiany tylko na formularzu z identyfikatorem formularza r\u00f3wnym 1.<\/p>\n<p>Jako argument do wszystkich tych filtr\u00f3w otrzymujesz obiekt formularza, w kt\u00f3rym mo\u017cesz uzyska\u0107 identyfikator formularza (alternatywna metoda dodawania identyfikatora formularza w filtrze) i wszystkie jego pola. Pola formularza to tablica <code>Field<\/code>obiekt\u00f3w \u2013 ale jedyne, o co musimy si\u0119 martwi\u0107, to zast\u0105pienie w\u0142a\u015bciwej <code>choices<\/code>w\u0142a\u015bciwo\u015bci pola.<\/p>\n<h4>Zmiana wybor\u00f3w<\/h4>\n<p>To, jakie dane chcesz zast\u0105pi\u0107, zale\u017cy wy\u0142\u0105cznie od Ciebie, ale <code>choices<\/code>w\u0142a\u015bciwo\u015b\u0107 pola wymaga tablicy zawieraj\u0105cej elementy \u201etext&#8221; i \u201evalue&#8221;. Na przyk\u0142ad <code>['text' =&gt; 'Hello World!', 'value' =&gt; '1', 'text' =&gt; 'Second choice', 'value' =&gt; '2']<\/code>.<\/p>\n<pre><code>add_filter('gform_pre_render_1', 'awp_populate_choices');\nadd_filter('gform_pre_validation_1', 'awp_populate_choices');\nadd_filter('gform_pre_submission_filter_1', 'awp_populate_choices');\nadd_filter('gform_admin_pre_render_1', 'awp_populate_choices');\nfunction awp_populate_choices($form) {\n    foreach ($form['fields'] as &amp;$field) {\n        if ($field-&gt;inputName == 'awp_populate_me') {\n\u00a0\n            \/\/ Generate your data here. Below is just an example\n            $pages = get_posts('numberposts=-1&amp;post_status=publish&amp;post_type=page');\n\u00a0\n            \/\/ Generate a nice array that Gravity Forms can understand\n            $choices = [];\n            foreach ($pages as $page) {\n                $choices[] = ['text' =&gt; $page-&gt;post_title, 'value' =&gt; $page-&gt;ID];\n            }\n\u00a0\n            \/\/ Set choices to field\n            $field-&gt;choices = $choices;\n        }\n    }\n    return $form;\n}<\/code><\/pre>\n<p>Powy\u017cszy kod filtruje tylko identyfikator formularza r\u00f3wny 1. Zaczyna si\u0119 od przechodzenia przez pola formularza. Wa\u017cne jest, aby zwr\u00f3ci\u0107 uwag\u0119 na \u201e&#038;&#8221; przed elementem w p\u0119tli, kt\u00f3ry przekazuje go przez odwo\u0142anie. Oznacza to, \u017ce je\u015bli wprowadzimy zmiany w <code>$field<\/code>, zostanie on zastosowany i zapisany bezpo\u015brednio w <code>$form['fields']<\/code>.<\/p>\n<p>Drugim krokiem jest kierowanie na pole, kt\u00f3re ma nazw\u0119 parametru, na kt\u00f3ry chcemy kierowa\u0107. Dla ka\u017cdego pola jest to <code>inputName<\/code>w\u0142a\u015bciwo\u015b\u0107. Mo\u017cesz u\u017cy\u0107 innych sposob\u00f3w targetowania p\u00f3l, np. jego identyfikatora (<code>id<\/code>) lub klas\u0119 CSS (<code>cssClass<\/code>). Kiedy znajdziemy nasze pole, musimy wygenerowa\u0107 tablic\u0119 zast\u0119pcz\u0105 do choices i ustawi\u0107 <code>$field-&gt;choices<\/code>na to. W powy\u017cszym przyk\u0142adzie wysy\u0142am zapytanie do wszystkich stron i przegl\u0105dam je w p\u0119tli, aby wygenerowa\u0107 poprawnie sformatowan\u0105 tablic\u0119.<\/p>\n<p>Nie zapomnij zwr\u00f3ci\u0107 <code>$form<\/code>na samym ko\u0144cu, poniewa\u017c jest to filtr.<\/p>\n<p>Warto wspomnie\u0107, \u017ce ten filtr dotyczy r\u00f3wnie\u017c formularza edycji (poniewa\u017c filtrujemy <code>gform_admin_pre_render<\/code>). Pami\u0119taj jednak, \u017ce nie mo\u017cesz ju\u017c manipulowa\u0107 wyborami podczas edycji formularza \u2013 po prostu nie zapisze to twoich zmian, poniewa\u017c ten kod zawsze go zast\u0105pi.<\/p>\n<h3>Wype\u0142nianie p\u00f3l wyboru<\/h3>\n<p>Wspomn\u0119 o tym jeszcze raz; je\u015bli po prostu interesuje Ci\u0119 wst\u0119pne zaznaczenie pola wyboru, post\u0119puj zgodnie z powy\u017cszym przewodnikiem dotycz\u0105cym wype\u0142niania pojedynczego pola warto\u015bci. Je\u015bli chodzi o zast\u0119powanie wszystkich wybor\u00f3w w polach wyboru, proces jest bardzo podobny do wype\u0142niania przycisk\u00f3w wyboru lub opcji powy\u017cej, ale z pewnymi drobnymi r\u00f3\u017cnicami. Polecam najpierw zapozna\u0107 si\u0119 z powy\u017cszym wyja\u015bnieniem dotycz\u0105cym przycisk\u00f3w wyboru i opcji.<\/p>\n<p>U\u017cywasz tych samych filtr\u00f3w, a proces uruchamiania jest taki sam; przechodzisz przez pola formularza i znajdujesz ten, kt\u00f3ry chcesz. Jednak za pomoc\u0105 p\u00f3l wyboru musisz zast\u0105pi\u0107 dwie w\u0142a\u015bciwo\u015bci w obiekcie pola; <code>choices<\/code>i <code>inputs<\/code>. W\u0142a\u015bciwo\u015b\u0107 <code>choices<\/code>oczekuje takiej samej tablicy, jak w przypadku przycisk\u00f3w wyboru lub opcji.<\/p>\n<p>W\u0142a\u015bciwo\u015b\u0107 <code>input<\/code>oczekuje tablicy z elementami \u201e <code>label<\/code>&#8221; i \u201e <code>id<\/code>&#8222;. Nie <code>label<\/code>wymaga wyja\u015bnie\u0144 i powinien by\u0107 identyczny z <code>text<\/code>tablic\u0105 wybor\u00f3w. Element <code>id<\/code>musi by\u0107 zgodny z regu\u0142ami Gravity Forms ID; \u0142\u0105czenie identyfikatora pola, kropki i identyfikatora wyboru, zaczynaj\u0105c od 1 (np. je\u015bli identyfikator pola to 2, a identyfikator wyboru to 3, poprawny <code>id<\/code>jest \u201e <code>2.3<\/code>&#8222;).<\/p>\n<pre><code>add_filter('gform_pre_render_1', 'awp_populate_choices');\nadd_filter('gform_pre_validation_1', 'awp_populate_choices');\nadd_filter('gform_pre_submission_filter_1', 'awp_populate_choices');\nadd_filter('gform_admin_pre_render_1', 'awp_populate_choices');\nfunction awp_populate_choices($form) {\n    foreach ($form['fields'] as &amp;$field) {\n        if ($field-&gt;inputName == 'awp_populate_me') {\n\u00a0\n            \/\/ Generate your data here. Below is just an example\n            $pages = get_posts('numberposts=-1&amp;post_status=publish&amp;post_type=page');\n\u00a0\n            \/\/ Generate nice arrays that Gravity Forms can understand\n            $choices = [];\n            $inputs = [];\n            $input_id = 1;\n            foreach ($pages as $page) {\n                $choices[] = ['text' =&gt; $page-&gt;post_title, 'value' =&gt; $page-&gt;ID];\n                $inputs[] = ['label' =&gt; $page-&gt;post_title, 'id' =&gt; $field-&gt;id. '.'. $input_id];\n                $input_id++;\n            }\n\u00a0\n            \/\/ Set choices to field\n            $field-&gt;choices = $choices;\n            $field-&gt;inputs = $inputs;\n        }\n    }\n    return $form;\n}<\/code><\/pre>\n<p>Poniewa\u017c identyfikator wyboru musi zaczyna\u0107 si\u0119 od 1, rozpoczynamy zmienn\u0105 licznika przed p\u0119tl\u0105 i dodajemy 1 dla ka\u017cdego elementu w p\u0119tli i u\u017cywamy tego razem z identyfikatorem pola i kropk\u0105, jak <code>id<\/code>w <code>inputs<\/code>tablicy.<\/p>\n<p>Kiedy mamy nasze dwie tablice, ustawiamy je na polach <code>choices<\/code>i <code>inputs<\/code>w\u0142a\u015bciwo\u015bciach i zwracamy zmodyfikowany formularz.<\/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>Kompletny przewodnik dotycz\u0105cy wst\u0119pnego wybierania lub wst\u0119pnego wype\u0142niania p\u00f3l w formularzu Gravity Forms i zast\u0119powania wybor\u00f3w w menu rozwijanym, przycisku opcji lub polach wyboru.<\/p>\n","protected":false},"author":1,"featured_media":153487,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[897,721,721,897,1110,805,805,815,836,836,845,845,866,866,815],"tags":[1169],"class_list":{"0":"post-233425","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-kod","8":"category-deweloper","11":"category-n-a","12":"category-php-7","14":"category-wtyczki","15":"category-przewodnik-dla-poczatkujacych","17":"category-samouczki","19":"category-wordpress-7","22":"tag-affiai-pl"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/233425","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=233425"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/233425\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/153487"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=233425"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=233425"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=233425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}