{"id":231426,"date":"2023-01-06T12:09:00","date_gmt":"2023-01-06T09:09:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231426"},"modified":"2022-12-25T21:37:47","modified_gmt":"2022-12-25T18:37:47","slug":"dodaj-niestandardowy-widok-do-ekranu-wszystkich-postow","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/dodaj-niestandardowy-widok-do-ekranu-wszystkich-postow\/","title":{"rendered":"Dodaj niestandardowy widok do ekranu wszystkich post\u00f3w"},"content":{"rendered":"\n<p><strong>TL; DR<\/strong>: B\u0119d\u0119 pracowa\u0142 nad seri\u0105, w kt\u00f3rej przyjrzymy si\u0119, jak osi\u0105gn\u0105\u0107 przydatne zadanie za pomoc\u0105 taksonomii, prawdopodobnych kategorii, a nast\u0119pnie zrefaktoryzowa\u0107 je do wtyczki obiektowej, kt\u00f3ra b\u0119dzie s\u0142u\u017cy\u0107 jako wtyczka narz\u0119dziowa dla taksonomii, og\u00f3lnie .<\/p>\n<hr \/>\n<h3>Kr\u00f3tka historia post\u00f3w OOP<\/h3>\n<p>Jaki\u015b czas temu zrobi\u0142em <a href=\"https:\/\/tommcfarlin.com\/tag\/oop-fundamentals\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">d\u0142ug\u0105 seri\u0119<\/a> o zasadach programowania obiektowego (i pr\u00f3bowa\u0142em podzieli\u0107 si\u0119 przyzwoit\u0105 ilo\u015bci\u0105 informacji o tym, jak osi\u0105gn\u0105\u0107 pewne rzeczy w kontek\u015bcie WordPressa).<\/p>\n<p>Na przestrzeni lat napisa\u0142em r\u00f3wnie\u017c kilka artyku\u0142\u00f3w na temat ca\u0142ego paradygmatu dla tych, kt\u00f3rzy s\u0105 zainteresowani nadrobieniem <a href=\"https:\/\/tommcfarlin.com\/tag\/object-oriented-programming\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">niekt\u00f3rych z tych artyku\u0142\u00f3w<\/a>.<\/p>\n<p>By\u0142bym niedba\u0142y, gdybym nie powiedzia\u0142, \u017ce m\u00f3j <a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dobry przyjaciel<\/a> te\u017c napisa\u0142 <a href=\"https:\/\/tommcfarlin.com\/object-oriented-programming-using-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ksi\u0105\u017ck\u0119 na ten temat<\/a>.<\/p>\n<p>I tak, poniewa\u017c my\u015bla\u0142em o r\u00f3\u017cnych tematach do pisania (po wzi\u0119ciu wprawdzie d\u0142u\u017cszego czasu wolnego ni\u017c planowa\u0142em), pomy\u015bla\u0142em, \u017ce mo\u017ce warto porozmawia\u0107 o praktycznych rzeczach, kt\u00f3re mo\u017cemy zrobi\u0107 z normalnymi API i hookami, a potem przerobi\u0107 to na rodzaj wtyczki u\u017cytkowej.<\/p>\n<h2>Dodaj widok niestandardowy<\/h2>\n<p>Na potrzeby pracy, kt\u00f3r\u0105 zamierzam podzieli\u0107 si\u0119 w tym demo, u\u017cywam:<\/p>\n<ul>\n<li><a href=\"https:\/\/localwp.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Lokalny przez ko\u0142o zamachowe<\/a> z <code>https:\/\/sandbox.local<\/code>domen\u0105<\/li>\n<li><a href=\"https:\/\/www.tableplus.io\/download\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TablePlus<\/a> dla dost\u0119pu do bazy danych<\/li>\n<li><a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Visual Studio Code<\/a> jako moje IDE<\/li>\n<li>Oraz <a href=\"https:\/\/github.com\/WebDevStudios\/php-coding-standards\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">standardy kodowania WDS PHP<\/a> dla wszystkich PHP, kt\u00f3re zobaczysz.<\/li>\n<\/ul>\n<p>Je\u015bli chcesz \u015bledzi\u0107 to, co mam na my\u015bli, wykorzystaj wszystkie powy\u017csze (nie wiem, czy b\u0119d\u0119 dzieli\u0107 si\u0119 wszystkim, ale je\u015bli zobaczysz zrzuty ekranu i fragmenty kodu, b\u0119dziesz wiedzia\u0142, sk\u0105d to pochodzi ).<\/p>\n<p>Oto kr\u00f3tka dygresja na temat <code>views<\/code>WordPressa (i to nie jest jak Widoki w sensie <a href=\"https:\/\/en.wikipedia.org\/wiki\/Model%E2%80%93view%E2%80%93controller\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">MVC<\/a> lub <a href=\"https:\/\/en.wikipedia.org\/wiki\/Model%E2%80%93view%E2%80%93viewmodel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">MVVM<\/a> ).<\/p>\n<h3>Widoki WordPress<\/h3>\n<p>W chwili pisania tego tekstu nie wydaje si\u0119, aby by\u0142o jasne, zwi\u0119z\u0142e stwierdzenie, czym jest widok WordPress. Pod wzgl\u0119dem dost\u0119pnego haka mamy <code>views_edit-post<\/code>.<\/p>\n<p>Wi\u0119c je\u015bli we\u017amiemy ten konkretny haczyk i to, co robi, mo\u017ce wystarczy\u0142oby co\u015b takiego:<\/p>\n<p>Widok WordPress to strona, na kt\u00f3rej mo\u017cemy wy\u015bwietli\u0107 wszystkie posty, kt\u00f3re spe\u0142niaj\u0105 okre\u015blone kryteria.<\/p>\n<p>Po wyj\u0119ciu z pude\u0142ka te kryteria zwykle obejmuj\u0105 posty takie jak:<\/p>\n<ul>\n<li>Opublikowany,<\/li>\n<li>Warcaby,<\/li>\n<li>\u015amieci,<\/li>\n<li>Zaplanowany,<\/li>\n<li>I tak dalej.<\/li>\n<\/ul>\n<p>Ale co, je\u015bli masz inny post, kt\u00f3ry ma inne kryteria, wed\u0142ug kt\u00f3rych chcesz filtrowa\u0107? Jasne, mo\u017cesz filtrowa\u0107 wed\u0142ug listy rozwijanej, kt\u00f3ra jest widoczna na ekranie (powiedzmy, wed\u0142ug kategorii) i to jest w porz\u0105dku, ale co, je\u015bli chcesz u\u017cy\u0107 niestandardowych kryteri\u00f3w z [dowolnego powodu]?<\/p>\n<p>Na przyk\u0142ad, co zrobi\u0107, je\u015bli nie chcesz klika\u0107 okre\u015blonego elementu, nast\u0119pnie filtrowa\u0107, a nast\u0119pnie przegl\u0105da\u0107 posty? Zamiast tego chcesz zobaczy\u0107 link do kryteri\u00f3w, liczb\u0119 wpis\u00f3w spe\u0142niaj\u0105cych kryteria, a nast\u0119pnie filtrowa\u0107 wed\u0142ug nich?<\/p>\n<p>Tutaj w gr\u0119 wchodzi mo\u017cliwo\u015b\u0107 edycji widok\u00f3w.<\/p>\n<p>Na potrzeby tego posta om\u00f3wi\u0119, jak wprowadzi\u0107 now\u0105 kotwic\u0119 u g\u00f3ry strony, kt\u00f3ra b\u0119dzie zawiera\u0107 list\u0119 post\u00f3w dla okre\u015blonej kategorii.<\/p>\n<h3>Jaki jest nasz pogl\u0105d?<\/h3>\n<p>W tym przypadku u\u017cyjemy Uncategorized, poniewa\u017c domy\u015blna instalacja ma ju\u017c dost\u0119pny nieskategoryzowany post i mo\u017cemy \u0142atwo dostosowa\u0107 niekt\u00f3re zmiany w tym zakresie.<\/p>\n<p>Aby to zrobi\u0107, napiszemy a <code>mu-plugin<\/code>wi\u0119c zostanie umieszczony w <code>mu-plugins<\/code>katalogu. Je\u015bli Twoja instalacja go nie posiada, dodaj katalog, a nast\u0119pnie dodaj <code>add-custom-view.php<\/code>do katalogu:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de802d2a6.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-158448-61e6de802d2a6.png\" alt=\"Dodaj niestandardowy widok do ekranu wszystkich post\u00f3w\" ><\/a><\/p>\n<p>St\u0105d pocz\u0105tkowy plik wtyczki mo\u017ce wygl\u0105da\u0107 mniej wi\u0119cej tak:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de83d7406.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-158448-61e6de83d7406.png\" alt=\"Dodaj niestandardowy widok do ekranu wszystkich post\u00f3w\" ><\/a><\/p>\n<p>Pocz\u0105tkowo wykonujemy nast\u0119puj\u0105ce czynno\u015bci:<\/p>\n<ol>\n<li>Ustawienie przestrzeni nazw,<\/li>\n<li>Dodanie filtra,<\/li>\n<li>Nast\u0119pnie konfigurujemy funkcj\u0119, kt\u00f3ra zaakceptuje domy\u015blny zestaw <code>$views<\/code>i zwr\u00f3ci tablic\u0119 <code>$views<\/code>po ich zmianie.<\/li>\n<\/ol>\n<p>Wi\u0119c co musimy teraz zrobi\u0107?<\/p>\n<h3>Zestaw wymaga\u0144<\/h3>\n<p>Aby osi\u0105gn\u0105\u0107 to, czego chcemy, musimy by\u0107 w stanie:<\/p>\n<ul>\n<li>Okre\u015bl nazw\u0119 kategorii,<\/li>\n<li>Dodaj link do kategorii wraz z liczb\u0105 post\u00f3w z dan\u0105 kategori\u0105 do listy widok\u00f3w,<\/li>\n<li>Mo\u017cliwo\u015b\u0107 okre\u015blenia, czy jeste\u015bmy na stronie kategorii, aby odpowiednio wystylizowa\u0107 list\u0119<\/li>\n<li>Mo\u017cliwo\u015b\u0107 filtrowania wed\u0142ug typu postu,<\/li>\n<li>I spos\u00f3b na przetestowanie tego.<\/li>\n<\/ul>\n<p>Wszystkie powy\u017csze zostan\u0105 om\u00f3wione w kodzie w dalszej cz\u0119\u015bci artyku\u0142u, ale pi\u0105ty krok wymaga r\u0119cznego utworzenia kategorii, aby\u015bmy mogli \u0142atwo przetestowa\u0107, czy reszta kodu dzia\u0142a.<\/p>\n<p>Wi\u0119c \u015bmia\u0142o zr\u00f3b to. Kategoria mo\u017ce mie\u0107 dowoln\u0105 nazw\u0119 (ja u\u017cy\u0142em Sample Category). Po zako\u0144czeniu napiszmy kod z reszty wtyczki.<\/p>\n<h4>Okre\u015bl nasz pogl\u0105d<\/h4>\n<p>Najpierw udost\u0119pni\u0119 funkcj\u0119, kt\u00f3ra okre\u015bli, na kt\u00f3rej stronie si\u0119 znajdujemy i wykona jedn\u0105 z dw\u00f3ch rzeczy:<\/p>\n<ul>\n<li>Je\u015bli jeste\u015bmy na stronie, kt\u00f3ra ma ten sam parametr ci\u0105gu zapytania dla identyfikatora naszej kategorii, podam nazw\u0119 klasy; w przeciwnym razie zwr\u00f3cimy pusty ci\u0105g.<\/li>\n<\/ul>\n<p>W tym celu funkcja powinna:<\/p>\n<ol>\n<li>Zaakceptuj nazw\u0119 kategorii,<\/li>\n<li>Zainicjuj zmienn\u0105 dla atrybut\u00f3w,<\/li>\n<li>Por\u00f3wnaj zmienne ci\u0105gu zapytania<\/li>\n<li>Sprawd\u017a, czy nazwa kategorii i identyfikator kategorii s\u0105 takie same,<\/li>\n<li>I zwr\u00f3\u0107 w\u0142a\u015bciw\u0105 warto\u015b\u0107, je\u015bli nie.<\/li>\n<\/ol>\n<p>Tak wygl\u0105da moja funkcja:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de8684cf5.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-158448-61e6de8684cf5.png\" alt=\"Dodaj niestandardowy widok do ekranu wszystkich post\u00f3w\" ><\/a><\/p>\n<p>Mo\u017cna to r\u00f3wnie\u017c upro\u015bci\u0107 za pomoc\u0105 operatora tr\u00f3jsk\u0142adnikowego, ale aby by\u0142 jak najbardziej czytelny, na razie zostawiam to bez zmian.<\/p>\n<h4>Okre\u015bl nazw\u0119 kategorii<\/h4>\n<p>Ta konkretna funkcja jest naprawd\u0119 bardzo \u0142atwa i chocia\u017c jeste\u015bmy przyzwyczajeni do brania informacji od u\u017cytkownik\u00f3w w wi\u0119kszo\u015bci tego, co robimy, zamierzamy zakodowa\u0107 t\u0119 warto\u015b\u0107 na sztywno.<\/p>\n<p>Aby to zrobi\u0107, po prostu przechowamy to w zmiennej, kt\u00f3ra jest przekazywana przez reszt\u0119 kodu.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de8963b8b.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-158448-61e6de8963b8b.png\" alt=\"Dodaj niestandardowy widok do ekranu wszystkich post\u00f3w\" ><\/a><\/p>\n<p>Widzia\u0142e\u015b zmienn\u0105 wcze\u015bniej przekazan\u0105 do powy\u017cszej funkcji i zobaczysz j\u0105 r\u00f3wnie\u017c w ostatecznej wersji kodu \u017ar\u00f3d\u0142owego.<\/p>\n<h4>Pobierz wyniki post\u00f3w z kategori\u0105<\/h4>\n<p>W tym celu musimy zrobi\u0107 dwie rzeczy:<\/p>\n<ol>\n<li>Pobierz wszystkie <code>object_id<\/code>rekordy, kt\u00f3re maj\u0105 identyfikator tej kategorii,<\/li>\n<li>Odfiltruj tre\u015bci, kt\u00f3re nie dotycz\u0105 tych post\u00f3w.<\/li>\n<\/ol>\n<p>Chcia\u0142bym tutaj wspomnie\u0107 o kilku rzeczach: Po pierwsze, b\u0119dziemy korzysta\u0107 z <code>get_cat_ID<\/code>funkcji zapewnianej przez WordPress. Pobiera identyfikator kategorii na podstawie przychodz\u0105cej nazwy.<\/p>\n<p>Po drugie, u\u017cywam dw\u00f3ch funkcji \u2013 z kt\u00f3rych jedna jest p\u0119tl\u0105 \u2013 do badania statusu elementu. Nie jest to najskuteczniejszy spos\u00f3b na zrobienie tego. Zamiast tego mogliby\u015bmy u\u017cy\u0107 bardziej eleganckiego zapytania, aby pobra\u0107 tylko posty; jednak pierwsza iteracja tego ma pokaza\u0107, jak to zrobi\u0107 nie tylko od podstaw, ale tak\u017ce dla odbiorc\u00f3w, kt\u00f3rzy mog\u0105 nie by\u0107 tak zaznajomieni z innymi aspektami pisania kodu.<\/p>\n<p>W ten spos\u00f3b otrzymujemy wszystkie rekordy w WordPress, kt\u00f3re s\u0105 oznaczone jako Uncategorized.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de8c7738c.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-158448-61e6de8c7738c.png\" alt=\"Dodaj niestandardowy widok do ekranu wszystkich post\u00f3w\" ><\/a><\/p>\n<p>I z tym bierzemy wyniki i wysy\u0142amy je do tej funkcji, kt\u00f3ra zwr\u00f3ci liczb\u0119 element\u00f3w, kt\u00f3re s\u0105 tylko postami.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de8fa1d77.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-158448-61e6de8fa1d77.png\" alt=\"Dodaj niestandardowy widok do ekranu wszystkich post\u00f3w\" ><\/a><\/p>\n<p>Dzi\u0119ki temu mamy wi\u0119kszo\u015b\u0107 tego, czego potrzebujemy, aby zacz\u0105\u0107 budowa\u0107 nasz\u0105 kotwic\u0119 widzenia.<\/p>\n<h4>Wygeneruj kotwic\u0119 widoku<\/h4>\n<p>Teraz, gdy mamy ju\u017c wszystkie funkcje niezb\u0119dne do wygenerowania kotwicy widoku, musimy po\u0142\u0105czy\u0107 je razem w <code>sprintf<\/code>celu bezpiecznego formatowania ci\u0105gu.<\/p>\n<p>Celem jest wygenerowanie kotwicy, kt\u00f3ra:<\/p>\n<ul>\n<li>Wygl\u0105da jak reszta kotwic,<\/li>\n<li>Pokazuje liczb\u0119 post\u00f3w,<\/li>\n<li>Jest pogrubiony za ka\u017cdym razem, gdy przegl\u0105dasz wspomniane posty.<\/li>\n<\/ul>\n<p>Aby to zrobi\u0107, musimy zbudowa\u0107 link i doda\u0107 odpowiednie argumenty ci\u0105gu zapytania. Oznacza to, \u017ce utworzymy link do <code>edit.php<\/code>z argumentami dla:<\/p>\n<ul>\n<li>identyfikator kategorii,<\/li>\n<li>rodzaj stanowiska,<\/li>\n<li>i wszystkie posty, kt\u00f3re maj\u0105 t\u0119 kategori\u0119.<\/li>\n<\/ul>\n<p>Nast\u0119pnie musimy uwzgl\u0119dni\u0107:<\/p>\n<ul>\n<li>wszelkie atrybuty do stylizacji linku,<\/li>\n<li>nazwa kategorii,<\/li>\n<li>i tylko tre\u015b\u0107 posta <code>post_type<\/code>.<\/li>\n<\/ul>\n<p>W tym celu mo\u017cemy skorzysta\u0107 z funkcji:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de92c2f38.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-158448-61e6de92c2f38.png\" alt=\"Dodaj niestandardowy widok do ekranu wszystkich post\u00f3w\" ><\/a><\/p>\n<p>To robi kilka rzeczy:<\/p>\n<ol>\n<li>Akceptuje standardow\u0105 tablic\u0119 <code>$views<\/code>z WordPressa,<\/li>\n<li>Dodaje nasz\u0105 niestandardow\u0105 kotwic\u0119, jak opisano powy\u017cej,<\/li>\n<li>Wstawia go do <code>$views<\/code>tablicy,<\/li>\n<li>Zwraca go do WordPressa w celu renderowania.<\/li>\n<\/ol>\n<p>I to wszystko!<\/p>\n<h4>Testowanie tego<\/h4>\n<p>Aby to przetestowa\u0107, za\u0142aduj przegl\u0105dark\u0119 i powiniene\u015b zobaczy\u0107 nowy link Uncategorized obok pozosta\u0142ych kotwic, takich jak Wszystkie, Opublikowane, Kopalnia, Kosz, Zaplanowane itp.<\/p>\n<p>Nast\u0119pnie zmie\u0144 kategori\u0119 post\u00f3w i usu\u0144 Uncategorized, a nast\u0119pnie ponownie odwied\u017a lub od\u015bwie\u017c stron\u0119 Wszystkie posty, a zobaczysz, \u017ce link jest aktywny i stylizowany, w zale\u017cno\u015bci od tego, jak go przegl\u0105dasz, i zawiera liczb\u0119 skategoryzowanych post\u00f3w jako takie te\u017c.<\/p>\n<h2>Teraz do GitHuba<\/h2>\n<p>Za\u0142adowa\u0142em <a href=\"https:\/\/github.com\/tommcfarlin\/add-custom-view\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pierwsz\u0105 iteracj\u0119 tej wtyczki na GitHub<\/a>, wi\u0119c mo\u017cesz j\u0105 pobra\u0107 i umie\u015bci\u0107 w swoim <code>mu-plugins<\/code>katalogu w celu przetestowania.<\/p>\n<p>W nadchodz\u0105cych postach chcia\u0142bym zacz\u0105\u0107 od zmiany tego na paradygmat obiektowy, wi\u0119c s\u0105 to zmiany, kt\u00f3re nadchodz\u0105 we wtyczce i tre\u015bci w przysz\u0142ych postach.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dzi\u0119ki tej wtyczce mu pokazuj\u0119, jak doda\u0107 niestandardowy widok do strony Wszystkie posty WordPress w oparciu o okre\u015blon\u0105 kategori\u0119.<\/p>\n","protected":false},"author":1,"featured_media":158449,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[897,805,836,845,866],"tags":[1169],"class_list":["post-231426","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kod","category-php-7","category-przewodnik-dla-poczatkujacych","category-samouczki","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/231426","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=231426"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/231426\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/158449"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=231426"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=231426"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=231426"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}