{"id":547,"date":"2024-02-23T11:45:11","date_gmt":"2024-02-23T11:45:11","guid":{"rendered":"https:\/\/smultron.software\/gutenberg-vs-acf-porownanie-edytorow-wordpress\/"},"modified":"2024-06-12T09:27:09","modified_gmt":"2024-06-12T09:27:09","slug":"gutenberg-vs-acf-porownanie-edytorow-wordpress","status":"publish","type":"post","link":"https:\/\/smultron.software\/pl\/blog\/gutenberg-vs-acf-porownanie-edytorow-wordpress","title":{"rendered":"Gutenberg vs. ACF &#8211; por\u00f3wnanie edytor\u00f3w WordPress"},"content":{"rendered":"\n<p>Wraz z&nbsp;zaimplementowaniem edytora Gutenberg, jako natywnego edytora tre\u015bci w&nbsp;WordPress, nast\u0105pi\u0142 rozw\u00f3j plugin\u00f3w, kt\u00f3re rozszerza\u0142y mo\u017cliwo\u015bci edycji stron. Jednym z&nbsp;nich jest Advanced Custom Field Pro (ACF). Wtyczka, kt\u00f3ra&nbsp;powszechnie by\u0142a stosowana nie&nbsp;tylko&nbsp;by&nbsp;generowa\u0107 dodatkowe statyczne pola w&nbsp;edycji post\u00f3w, ale&nbsp;r\u00f3wnie\u017c do&nbsp;tworzenia ca\u0142ych tre\u015bci i&nbsp;layout\u00f3w \u2013 dzi\u0119ki opcji generowania p\u00f3l elastycznych (flexible fields).<\/p>\n\n\n\n<p>Pomimo \u0142atwego zarz\u0105dzania tymi polami, ich edycji oraz tworzenia templat\u00f3w dla nich, mia\u0142y jedn\u0105 wad\u0119 &#8211; layouty strony budowa\u0107 trzeba by\u0142o na zasadzie jeden wiersz to jeden komponent. Wada ta powodowa\u0142a, \u017ce rozwi\u0105zanie to nie mog\u0142o by\u0107 stosowane tam, gdzie projekt wymaga\u0142 budowania tre\u015bci w oparciu o kolumny.<\/p>\n\n\n\n<p>Prze\u0142om dla ACF przyni\u00f3s\u0142 Gutenberg. ACF zyska\u0142 mo\u017cliwo\u015b\u0107 budowania blok\u00f3w w oparciu o natywne rozwi\u0105zania edytora Gutenberg, a co za tym idzie, mo\u017cliwo\u015b\u0107 ich osadzania bezpo\u015brednio w tre\u015bci artyku\u0142u, np. wewn\u0105trz kolumn.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" data-src=\"https:\/\/smultron.software\/content\/uploads\/2024\/02\/rozne-bloki-w-dwukolumnowym-ukladzie-1024x419.png\" alt=\"Przyk\u0142ad zastosowania dw\u00f3ch r\u00f3\u017cnych blok\u00f3w ACF wewn\u0105trz dwukolumnowego layoutu Gutenberg\" class=\"wp-image-37354 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/419;\" \/><figcaption class=\"wp-element-caption\">Przyk\u0142ad zastosowania dw\u00f3ch r\u00f3\u017cnych blok\u00f3w ACF wewn\u0105trz dwukolumnowego layoutu Gutenberg <\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"porownanie\">Por\u00f3wnanie<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"edycja\">Edycja<\/h3>\n\n\n\n<p>Edycja kontentu natywnego bloku Gutenberg i bloku ACF znacz\u0105co si\u0119&nbsp;r\u00f3\u017cni.<\/p>\n\n\n\n<p>W przypadku natywnego bloku Gutenberg, element jest tak zaprogramowany, aby jak najdok\u0142adniej odwzorowywa\u0107 docelowy efekt. Przyk\u0142adowo, je\u015bli blok ma za zadanie przedstawia\u0107&nbsp;cz\u0142onka zespo\u0142u to ju\u017c na etapie wprowadzania tre\u015bci widzimy jak prezentuje si\u0119&nbsp;komponent:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"800\" height=\"500\" data-src=\"https:\/\/smultron.software\/content\/uploads\/2024\/04\/gutenberg-editor-team-members2.png\" alt=\"\" class=\"wp-image-2516 lazyload\" data-srcset=\"https:\/\/smultron.software\/content\/uploads\/2024\/04\/gutenberg-editor-team-members2.png 800w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/gutenberg-editor-team-members2-300x188.png 300w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/gutenberg-editor-team-members2-768x480.png 768w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/gutenberg-editor-team-members2-46x29.png 46w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/gutenberg-editor-team-members2-56x35.png 56w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/gutenberg-editor-team-members2-528x330.png 528w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/gutenberg-editor-team-members2-86x54.png 86w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/gutenberg-editor-team-members2-576x360.png 576w\" data-sizes=\"(max-width: 800px) 100vw, 800px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 800px; --smush-placeholder-aspect-ratio: 800\/500;\" \/><figcaption class=\"wp-element-caption\">Edycja natywnego bloku Gutenberg odwzorowuje jego docelowy wygl\u0105d.<\/figcaption><\/figure>\n\n\n\n<p>Inaczej wygl\u0105da to w przypadku bloku ACF. Przyk\u0142adowo, je\u015bli edytujemy blok odpowiedzialny za wy\u015bwietlanie rozwijanej listy, np. FAQ, to edycja jego to formularz z odpowiedni\u0105&nbsp;struktur\u0105&nbsp;p\u00f3l do uzupe\u0142nienia, jak poni\u017cej:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" data-src=\"https:\/\/smultron.software\/content\/uploads\/2024\/02\/widok-edycji-bloku-acf.png\" alt=\"Edycja bloku ACF\" class=\"wp-image-37356 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 848px; --smush-placeholder-aspect-ratio: 848\/836;\" \/><figcaption class=\"wp-element-caption\">Edycja bloku ACF<\/figcaption><\/figure>\n\n\n\n<p>Jak wida\u0107 powy\u017cej, edycja natywnego bloku oraz bloku ACF znacz\u0105co si\u0119&nbsp;r\u00f3\u017cni\u0105. Nale\u017cy mie\u0107 na wzgl\u0119dzie to, \u017ce decyduj\u0105c si\u0119 na kt\u00f3re\u015b z rozwi\u0105za\u0144, nie tylko preferencje s\u0105 wa\u017cne, ale r\u00f3wnie\u017c istotny jest bud\u017cet. Warto o tym wspomnie\u0107, poniewa\u017c programowanie dodatkowych blok\u00f3w Gutenberg b\u0119dzie bardziej czasoch\u0142onne ni\u017c&nbsp;w przypadku wykorzystania ACF. Wynika to z tego, \u017ce w przypadku bloku Gutenberg nale\u017cy r\u00f3wnie\u017c&nbsp;ostylowa\u0107&nbsp;i zaprogramowa\u0107 wszystkie jego elementy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"podglad-edycji\">Podgl\u0105d edycji<\/h3>\n\n\n\n<p>W zwi\u0105zku z tym, \u017ce bloki Gutenberg maj\u0105 za zadanie odwzorowywa\u0107, jak najdok\u0142adniej docelowy element ju\u017c w czasie jego edycji to podgl\u0105d mamy na bie\u017c\u0105co.<\/p>\n\n\n\n<p>Inaczej ma si\u0119&nbsp;sprawa w przypadku blok\u00f3w ACF. Domy\u015blnie ka\u017cdy blok ACF ma przycisk do prze\u0142\u0105czania si\u0119&nbsp;pomi\u0119dzy formularzem edycji jego p\u00f3l, a podgl\u0105dem na \u017cywo.<\/p>\n\n\n\n<p>Przyk\u0142adowo, nasz blok odpowiada za przedstawienie zestawu przycisk\u00f3w do pobierania lub ods\u0142uchania podcastu:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" data-src=\"https:\/\/smultron.software\/content\/uploads\/2024\/02\/widok-edycji-bloku-acf-2.png\" alt=\"Widok bloku ACF oraz mo\u017cliwo\u015b\u0107 prze\u0142\u0105czenia na podgl\u0105d w trakcie edycji\" class=\"wp-image-37355 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 840px; --smush-placeholder-aspect-ratio: 840\/385;\" \/><figcaption class=\"wp-element-caption\">Widok bloku ACF oraz mo\u017cliwo\u015b\u0107 prze\u0142\u0105czenia na podgl\u0105d w trakcie edycji<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" data-src=\"https:\/\/smultron.software\/content\/uploads\/2024\/02\/podglad-edytowanego-bloku-acf.png\" alt=\"\" class=\"wp-image-37353 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 680px; --smush-placeholder-aspect-ratio: 680\/126;\" \/><\/figure>\n\n\n\n<p>Bloki ACF maj\u0105&nbsp;mo\u017cliwo\u015b\u0107 prze\u0142\u0105czania na podgl\u0105d oraz opcj\u0119 definitywnego wy\u0142\u0105czenia podgl\u0105du.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"aspekty-techniczne\">Aspekty techniczne<\/h3>\n\n\n\n<p>Podstawow\u0105 r\u00f3\u017cnic\u0105 jest \u015brodowisko programistyczne oraz spos\u00f3b renderowania templatu bloku. W przypadku Gutenberg wykorzystuje si\u0119&nbsp;JavaScript, natomiast bloki ACF s\u0105 renderowane za pomoc\u0105 templat\u00f3w PHP.<\/p>\n\n\n\n<p>Pozosta\u0142e aspekty techniczne s\u0105 <strong>wsp\u00f3lne <\/strong>dla obu rozwi\u0105za\u0144, jak na przyk\u0142ad:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>mo\u017cliwo\u015b\u0107 \u0142adowania plik\u00f3w CSS i JS okre\u015blonych tylko dla danego bloku,<\/li>\n\n\n\n<li>implementacja natywnych funkcji dla blok\u00f3w, jak \u201cwyr\u00f3wnanie\u201d, \u201ckotwica\u201d czy te\u017c \u201cwielokrotne wykorzystanie\u201d,<\/li>\n\n\n\n<li>rejestrowanie bloku ACF odbywa si\u0119&nbsp;standardowo przez konfiguracj\u0105&nbsp;block.json,<\/li>\n\n\n\n<li>zagnie\u017cd\u017canie bloku wewn\u0105trz innego bloku.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"kompozycja-tresci\">Kompozycja tre\u015bci<\/h2>\n\n\n\n<p>Gutenberg jest z za\u0142o\u017cenia narz\u0119dziem przeznaczonym do komponowania uk\u0142adu strony z dowolnej ilo\u015bci blok\u00f3w r\u00f3\u017cnego typu. Dla samego WordPress to du\u017cy krok do przodu &#8211; wcze\u015bniej platforma nie oferowa\u0142a takich mo\u017cliwo\u015bci, musia\u0142y one by\u0107 dostarczane pluginem typu \u201cpage builder\u201d np. Elementor, czy WPBakery.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" data-src=\"https:\/\/smultron.software\/content\/uploads\/2024\/02\/gutenberg-kompozycja-1024x546.png\" alt=\"Kompozycja tre\u015bci z u\u017cyciem edytora Gutenberg\" class=\"wp-image-37340 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/546;\" \/><figcaption class=\"wp-element-caption\">Kompozycja tre\u015bci z u\u017cyciem edytora Gutenberg<\/figcaption><\/figure>\n\n\n\n<p>Ale tak\u017ce sam ACF mo\u017ce by\u0107 wykorzystany jako uproszczony page builder do kompozycji ca\u0142ego uk\u0142adu strony. Pozwala na to pole \u201cFlexible content\u201d, kt\u00f3re umo\u017cliwia skonfigurowanie grupy \u201clayout\u00f3w\u201d &#8211; ka\u017cdy layout, jako grupa p\u00f3l, jest koncepcyjnie odpowiednikiem bloku w Gutenberg.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" data-src=\"https:\/\/smultron.software\/content\/uploads\/2024\/02\/acf-kompozycja-1024x546.png\" alt=\"Kompozycja tre\u015bci z u\u017cyciem ACF Flexible Layout\" class=\"wp-image-37339 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/546;\" \/><figcaption class=\"wp-element-caption\">Kompozycja tre\u015bci z u\u017cyciem ACF Flexible Layout<\/figcaption><\/figure>\n\n\n\n<p>Gutenberg w du\u017cym stopniu zast\u0119puje konieczno\u015b\u0107 korzystania z ACF w takiej formie, ale nie wszystkich przypadkach.<\/p>\n\n\n\n<p>Je\u015bli mamy prosty projekt, kt\u00f3ry mo\u017ce wykorzysta\u0107 domy\u015blny zestaw blok\u00f3w Gutenberga (rozbudowany ewentualnie o kilka customowych blok\u00f3w utworzonych z pomoc\u0105 ACF), to przypuszczalnie u\u017cywanie ACF Flexible content nie b\u0119dzie mia\u0142o uzasadnienia.<\/p>\n\n\n\n<p>Je\u015bli jednak potrzebujemy mie\u0107 wi\u0119ksz\u0105 kontrol\u0119 nad dost\u0119pnym UI, czyli np. bardziej zaawansowane regu\u0142y widoczno\u015bci p\u00f3l (codnitional logic), lub potrzebujemy uk\u0142adu strony zbudowanego z kilku grup layout\u00f3w (blok\u00f3w), to u\u017cycie ACF nadal mo\u017ce okaza\u0107 si\u0119 rozwi\u0105zaniem lepszym. Wci\u0105\u017c wiele projekt\u00f3w nie u\u017cywa i nie b\u0119dzie w przysz\u0142o\u015bci u\u017cywa\u0107 Gutenberg &#8211; dla nich ACF Flexible content nadal pozostaje wygodnym rozwi\u0105zaniem do kompozycji tre\u015bci przy zachowaniu pe\u0142nej kontroli nad uk\u0142adem a jednocze\u015bnie bez narzutu zwi\u0105zanego z u\u017cyciem pe\u0142nego page buildera.<\/p>\n\n\n\n<div class=\"py-[32px] px-[24px] tablet:px-[32px] bg-gray-1 rounded-[8px]\ncta-small\">\n\t<div class=\"flex flex-wrap gap-[24px] justify-between\n\titems-center\">\n\t\t<div class=\"hm5 desktop:h5 basis-[417px] max-w-[496px]\">\n\t\t\tSzukasz do\u015bwiadczonego zespo\u0142u programistycznego? Porozmawiajmy o konkretach.\t\t<\/div>\n\t\t<div>\n\t\t\t\n<div class=\"person-contact flex gap-[16px] items-center\">\n\t<div class=\"person-contact__image\">\n\t\t\t\t\t<img decoding=\"async\" data-src=\"https:\/\/smultron.software\/content\/uploads\/2024\/02\/marcin-stawowiak-56x56.jpeg\"\n\t\t\t\tclass=\"size-[56px] rounded-full object-cover lazyload\"\n\t\t\t\talt=\"\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 56px; --smush-placeholder-aspect-ratio: 56\/56;\">\n\t\t\t<\/div>\n\t<div class=\"person-contact__details label-md\">\n\t\t<div class=\"person-contact__email\">\n\t\t\t<a href=\"mailto:hello@smultron.pl\">\n\t\t\t\thello@smultron.pl\t\t\t<\/a>\n\t\t<\/div>\n\t\t<div class=\"person-contact__phone\">\n\t\t\t<a href=\"tel:+48 791 991 797\">\n\t\t\t\t+48 791 991 797\t\t\t<\/a>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"poziom-wejscia-learning-curve\">Poziom wej\u015bcia (learning curve)<\/h2>\n\n\n\n<p>O ile od strony ko\u0144cowego u\u017cytkownika Gutenberg mo\u017ce okaza\u0107 si\u0119 narz\u0119dziem wygodniejszym, estetyczniejszym i przyjemniejszym w obs\u0142udze, to zupe\u0142nie inaczej wygl\u0105da to od strony deweloperskiej.<\/p>\n\n\n\n<p>ACF zawdzi\u0119cza swoj\u0105 popularno\u015b\u0107 kilku kwestiom. Pierwsza to wygodny i \u0142atwy w obs\u0142udze edytor do tworzenia konfiguracji p\u00f3l (fields), kt\u00f3ry integruje si\u0119 z CMS i nie wymaga pisania kodu. Druga to proste i eleganckie API do obs\u0142ugi tre\u015bci zarz\u0105dzanych przez custom fields. Mo\u017cna powiedzie\u0107, \u017ce pr\u00f3g wej\u015bcia dla nowego dewelopera jest tu niewielki. Szybko mo\u017cna te\u017c przygotowa\u0107 potrzebny zestaw custom fields lub nowy blok dla Gutenberg korzystaj\u0105cy z ACF.<\/p>\n\n\n\n<p>Inaczej to wygl\u0105da w przypadku natywnego Gutenberg, gdzie do utworzenia nowego bloku wymagana jest znajomo\u015b\u0107 React i ca\u0142ego zbudowanego na nim systemu do programowania blok\u00f3w.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"podsumowanie\">Podsumowanie<\/h2>\n\n\n\n<p>Ka\u017cde z rozwi\u0105za\u0144 ma swoje wady i zalety, i s\u0105 one zale\u017cne od projektu, w kt\u00f3rym dane podej\u015bcie ma by\u0107 zastosowane.<\/p>\n\n\n\n<p>Dwie najwi\u0119ksze zalety blok\u00f3w Gutenberg to, po pierwsze &#8211; nie wymagaj\u0105 dodatkowego pluginu (jak w przypadku blok\u00f3w ACF), po drugie &#8211; bezpo\u015brednio podczas edycji bloku mamy, jego podgl\u0105d na \u017cywo.<\/p>\n\n\n\n<p>Wad\u0105 zastosowania blok\u00f3w Gutenberg b\u0119dzie bud\u017cet i czas potrzebny na ich zaprogramowanie. Rozwi\u0105zanie jest dro\u017csze od podej\u015bcia z blokami ACF.<\/p>\n\n\n\n<p>U\u017cycie blok\u00f3w Gutenberg na pewno sprawdzi si\u0119&nbsp;w serwisach \u201ckreatywnych\u201d, w kt\u00f3rych ju\u017c na etapie edycji stron i podstron chcemy widzie\u0107&nbsp;jak tre\u015bci b\u0119d\u0105&nbsp;ostatecznie zaprezentowane.<\/p>\n\n\n\n<p>Decyduj\u0105c si\u0119&nbsp;na bloki ACF bud\u017cet mo\u017ce by\u0107&nbsp;bardziej elastyczny. Je\u015bli podgl\u0105d na \u017cywo nie jest wymagany, mo\u017cemy z niego zrezygnowa\u0107, co pozwoli ograniczy\u0107 bud\u017cet oraz czas pracy programisty. Przy czym bloki ACF ca\u0142y czas zachowuj\u0105 pe\u0142n\u0105&nbsp;kompatybilno\u015b\u0107&nbsp;z natywnymi opcjami Gutenberg.<\/p>\n\n\n\n<p>Wad\u0105 podej\u015bcia ACF jest widok edycji blok\u00f3w, poniewa\u017c bez wzgl\u0119du czy zdecydujemy si\u0119 na zaprogramowanie podgl\u0105du bloku w edytorze, to zawsze tre\u015bci wprowadzamy w postaci p\u00f3l formularza.<\/p>\n\n\n\n<p>Jednak w zale\u017cno\u015bci od projektu, wcale nie musi to by\u0107\u00a0wad\u0105. Je\u015bli edycja stron odbywa si\u0119\u00a0rzadko, a dodatkowo layout naszego serwisu jest schematyczny, to takie podej\u015bcie mo\u017ce nawet przyspieszy\u0107 wprowadzanie tre\u015bci.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1200\" height=\"1948\" data-src=\"https:\/\/smultron.software\/content\/uploads\/2024\/04\/tabela-porownawcza-wordpress-craft.png\" alt=\"\" class=\"wp-image-2512 lazyload\" data-srcset=\"https:\/\/smultron.software\/content\/uploads\/2024\/04\/tabela-porownawcza-wordpress-craft.png 1200w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/tabela-porownawcza-wordpress-craft-185x300.png 185w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/tabela-porownawcza-wordpress-craft-631x1024.png 631w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/tabela-porownawcza-wordpress-craft-768x1247.png 768w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/tabela-porownawcza-wordpress-craft-946x1536.png 946w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/tabela-porownawcza-wordpress-craft-28x46.png 28w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/tabela-porownawcza-wordpress-craft-34x56.png 34w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/tabela-porownawcza-wordpress-craft-232x376.png 232w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/tabela-porownawcza-wordpress-craft-1080x1753.png 1080w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/tabela-porownawcza-wordpress-craft-33x54.png 33w, https:\/\/smultron.software\/content\/uploads\/2024\/04\/tabela-porownawcza-wordpress-craft-222x360.png 222w\" data-sizes=\"(max-width: 1200px) 100vw, 1200px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1200px; --smush-placeholder-aspect-ratio: 1200\/1948;\" \/><\/figure>\n<div class=\"full-width container-grid gap-y-[32px] section-scrollspy  bg-gray-1 pt-[60px] desktop:pt-[120px] pb-[60px] desktop:pb-[120px]\"\n\tid=\"skontaktuj-sie\">\n\t<div class=\"hm2 desktop:h2\"\n\t\tdata-aos=\"animate__fadeInUp\"\n\t>\n\t\tSkontaktuj si\u0119 z nami\t<\/div>\n\t<div class=\"grid desktop:grid-cols-12 gap-y-[60px] items-start\">\n\t\t\n<div class=\"desktop:col-span-6 grid tablet:grid-cols-2\n\t\ttablet:gap-x-[24px] tablet:gap-y-[32px]\">\n\t<div class=\"\">\n\t\t<div class=\"\">\n\t\t\t<img decoding=\"async\" data-src=\"https:\/\/smultron.software\/content\/uploads\/2024\/01\/681c046dafbd67a84a6a2820a207caa9-e1706629988730-768x515.jpeg\"\n\t\t\t\twidth=\"327\"\n\t\t\t\theight=\"204\"\n\t\t\t\tclass=\"w-full aspect-[390\/243] object-cover rounded-t-[10px] lazyload\"\n\t\t\t\talt=\"Marcin Stawowiak\"\n\t\t\t\tdata-aos=\"animate__fadeInUp\"\n\t\t\t src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 327px; --smush-placeholder-aspect-ratio: 327\/204;\" \/>\n\t\t\t<div class=\"p-[24px] tablet:border-l-[1px] tablet:border-b-[1px]\n\t\t\tborder-gray-2 tablet:rounded-bl-[10px] max-tablet:border-x-[1px]\n\t\t\tgrid gap-[16px]\">\n\t\t\t\t<div class=\"h6\"\n\t\t\t\t\tdata-aos=\"animate__fadeInUp\"\n\t\t\t\t>Marcin Stawowiak<\/div>\n\t\t\t\t<div class=\"label-xs font-bold\"\n\t\t\t\t\tdata-aos=\"animate__fadeInUp\"\n\t\t\t\t>\n\t\t\t\t\tCo-founder, Executive Manager\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"pl-[24px] pb-[24px] pr-[24px] tablet:ml-[-24px]\n\t\t\ttablet:pt-[24px] grid gap-[16px] tablet:self-end tablet:border-[1px] tablet:border-l-0\n\t\t\tborder-gray-2 tablet:rounded-r-[10px] max-tablet:border-x-[1px]\n\t\t\tmax-tablet:border-b-[1px] max-tablet:rounded-b-[10px]\n\t\t\tgap-y-[60px]\">\n\t\t<div class=\"label-md max-tablet:hidden\" data-aos=\"animate__fadeInUp\">\n\t\t\tSzukasz do\u015bwiadczonego zespo\u0142u programistycznego? <br \/>Porozmawiajmy o konkretach.\t\t<\/div>\n\t\t<div class=\"grid body-md\" data-aos=\"animate__fadeInUp\">\n\t\t\t<a href=\"mailto:hello@smultron.pl\">hello@smultron.pl<\/a>\n\t\t\t<a href=\"tel:+48 791 991 797\">+48 791 991 797<\/a>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"tablet:col-span-2 body-md grid gap-[16px] mt-[32px]\n\ttablet:mt-0\" data-aos=\"animate__fadeInUp\">\n\t\t<div class=\"label-md\">\n\t\t\tSmultron Web Development\t\t<\/div>\n\t\t<div class=\"\">\n\t\t\tul. S\u0142awkowska 12\t\t\t<br\/>\n\t\t\t31-014 Krak\u00f3w\t\t<\/div>\n\t\t<div>\n\t\t\tNIP:&nbsp;6762482785\t\t<\/div>\n\t<\/div>\n<\/div>\n\t\t\n<div class=\"desktop:col-start-8 desktop:col-span-5 contact-form-footer\">\n\t\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f224-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"224\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/pl\/wp-json\/wp\/v2\/posts\/547#wpcf7-f224-o1\" method=\"post\" class=\"wpcf7-form init wpcf7-acceptance-as-validation\" aria-label=\"Contact form\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"224\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.5\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f224-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<\/fieldset>\n<div class=\"desktop:col-start-8 desktop:col-span-5\">\n  <div class=\"grid gap-[32px]\">\n    <div class=\"label-md\">\n\t\t\tWype\u0142nij poni\u017cszy formularz\n    <\/div>\n    <div class=\"grid gap-[24px]\">\n      <div class=\"form-row\">\n        <label class=\"label-xs\" for=\"msg-email\">Tw\u00f3j e-mail*<\/label>\n        <span class=\"wpcf7-form-control-wrap\" data-name=\"email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email form-control\" id=\"msg-email\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"email\" name=\"email\" \/><\/span>\n      <\/div>\n      <div class=\"form-row\">\n        <label class=\"label-xs\" for=\"msg-content\">Twoja wiadomo\u015b\u0107*<\/label>\n        <span class=\"wpcf7-form-control-wrap\" data-name=\"message\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2500\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required form-control form-control-textarea\" id=\"msg-content\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Podziel si\u0119 szczeg\u00f3\u0142ami swojego projektu\" name=\"message\"><\/textarea><\/span>\n        <div class=\"form-text\">\n          Max. 2500 znak\u00f3w\n        <\/div>\n      <\/div>\n      <div class=\"form-row label-sm\">\n<span class=\"wpcf7-form-control-wrap\" data-name=\"acceptance-69\"><span class=\"wpcf7-form-control wpcf7-acceptance\"><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"acceptance-69\" value=\"1\" aria-invalid=\"false\" \/><span class=\"wpcf7-list-item-label\"><span><\/span><span>Zapozna\u0142em si\u0119 i akceptuj\u0119 <a href=\"\/pl\/polityka-prywatnosci\/\" class=\"underline\" target=\"_blank\" rel=\"nofollow\">Regulamin i Polityk\u0119 Prywatno\u015bci Smultron<\/a>.*<\/span><\/span><\/label><\/span><\/span><\/span>\n      <\/div>\n      <div>\n        <button type=\"submit\" class=\"button button--gradient-red\n                button--with-icon\">\n                    <span>Wy\u015blij<\/span>\n                    <span class=\"icon-arrow-right\"><\/span>\n                <\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n\t<div class=\"contact-form-footer__success flex bg-green-2\n\t\t\t\t\t\tborder-green-3 p-[16px] gap-[16px] rounded-[8px]\n\t\t\t\t\t\tmt-[30px]\">\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"24\"\n\t\t\tviewBox=\"0 0 24 24\" fill=\"none\">\n\t\t\t<path d=\"M12 2C17.51 2 22 6.49 22 12C22 17.51 17.51 22 12 22C6.49 22 2 17.51 2 12C2 6.49 6.49 2 12 2ZM12 0C5.37 0 0 5.37 0 12C0 18.63 5.37 24 12 24C18.63 24 24 18.63 24 12C24 5.37 18.63 0 12 0ZM18.25 8.89L16.83 7.48L10.73 13.7L7.65 10.76L6.25 12.2L10.75 16.52L18.25 8.89Z\"\n\t\t\t\t\tfill=\"#104121\"><\/path>\n\t\t<\/svg>\n\t\t<div class=\"body-md text-green-4\">\n\t\t\t<strong>Dzi\u0119kujemy za przes\u0142anie formularza!<\/strong> Odpowiemy w ci\u0105gu 24 godzin.\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Wraz z zaimplementowaniem edytora Gutenberg, jako natywnego edytora tre\u015bci w WordPress, nast\u0105pi\u0142 rozw\u00f3j plugin\u00f3w, kt\u00f3re rozszerza\u0142y mo\u017cliwo\u015bci edycji stron. Jednym z nich jest Advanced Custom Field Pro (ACF). Wtyczka, kt\u00f3ra powszechnie by\u0142a stosowana nie tylko by generowa\u0107 dodatkowe statyczne pola w edycji post\u00f3w, ale r\u00f3wnie\u017c do tworzenia ca\u0142ych tre\u015bci i layout\u00f3w \u2013 dzi\u0119ki opcji generowania p\u00f3l elastycznych (flexible fields).<\/p>\n","protected":false},"author":1,"featured_media":744,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[40,3],"tags":[],"class_list":["post-547","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technologie","category-programowanie"],"acf":[],"_links":{"self":[{"href":"https:\/\/smultron.software\/pl\/wp-json\/wp\/v2\/posts\/547","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smultron.software\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smultron.software\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smultron.software\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/smultron.software\/pl\/wp-json\/wp\/v2\/comments?post=547"}],"version-history":[{"count":0,"href":"https:\/\/smultron.software\/pl\/wp-json\/wp\/v2\/posts\/547\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/smultron.software\/pl\/wp-json\/wp\/v2\/media\/744"}],"wp:attachment":[{"href":"https:\/\/smultron.software\/pl\/wp-json\/wp\/v2\/media?parent=547"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smultron.software\/pl\/wp-json\/wp\/v2\/categories?post=547"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smultron.software\/pl\/wp-json\/wp\/v2\/tags?post=547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}