{"id":228681,"date":"2022-10-31T10:00:00","date_gmt":"2022-10-31T07:00:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228681"},"modified":"2022-11-09T03:48:36","modified_gmt":"2022-11-09T00:48:36","slug":"pisanie-wtyczek-wordpress-dla-istniejacych-funkcji","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/pisanie-wtyczek-wordpress-dla-istniejacych-funkcji\/","title":{"rendered":"Pisanie wtyczek WordPress dla istniej\u0105cych funkcji"},"content":{"rendered":"\n<p>W poprzednim po\u015bcie m\u00f3wi\u0142em o filozofii projektowania WordPressa <a href=\"https:\/\/tommcfarlin.com\/wordpress-philosophy-decisions-not-options\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">decyzji, a nie opcji<\/a>. Pracuj\u0119 nad doj\u015bciem do sedna, ale najpierw musz\u0119 po\u0142o\u017cy\u0107 troch\u0119 fundamentu pod ca\u0142\u0105 spraw\u0119.<\/p>\n<p>Mo\u017cesz przeczyta\u0107 ca\u0142y zestaw filozofii <a href=\"https:\/\/wordpress.org\/about\/philosophy\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">na tej stronie<\/a>, ale oto sedno tej, o kt\u00f3rej w\u0142a\u015bnie wspomnia\u0142em:<\/p>\n<blockquote>\n<p>Przy podejmowaniu decyzji w\u0142a\u015bnie tych u\u017cytkownik\u00f3w bierzemy pod uwag\u0119 w pierwszej kolejno\u015bci. Doskona\u0142ym przyk\u0142adem tej kwestii s\u0105 opcje oprogramowania. Za ka\u017cdym razem, gdy dajesz u\u017cytkownikowi opcj\u0119, prosisz go o podj\u0119cie decyzji. Kiedy u\u017cytkownik nie przejmuje si\u0119 t\u0105 opcj\u0105 lub jej nie rozumie, prowadzi to ostatecznie do frustracji.<\/p>\n<p>Jako programi\u015bci czasami uwa\u017camy, \u017ce zapewnienie opcji na wszystko jest dobr\u0105 rzecz\u0105, nigdy nie mo\u017cesz mie\u0107 zbyt wielu wybor\u00f3w, prawda? Ostatecznie te wybory ko\u0144cz\u0105 si\u0119 wyborami technicznymi, wyborami, kt\u00f3rymi przeci\u0119tny u\u017cytkownik ko\u0144cowy nie jest zainteresowany.<\/p>\n<p>Naszym obowi\u0105zkiem jako programist\u00f3w jest podejmowanie m\u0105drych decyzji projektowych i unikanie obci\u0105\u017cania naszych u\u017cytkownik\u00f3w ko\u0144cowych ci\u0119\u017carem wybor\u00f3w technicznych.<\/p>\n<\/blockquote>\n<p>Jest to prawdopodobnie moja ulubiona filozofia, kt\u00f3ra okre\u015bla, co i jak powinno znale\u017a\u0107 si\u0119 w rdzeniu WordPressa; cho\u0107 by\u0142bym niedba\u0142y, gdybym nie powiedzia\u0142, \u017ce uwa\u017cam, \u017ce s\u0105 obszary do poprawy.<\/p>\n<p>(Wiem, \u017ce w tym miejscu dyskusja mo\u017ce skr\u0119ci\u0107 w lewe pole, ale nie wiem, jak to zrobi\u0107, ani nie pr\u00f3buj\u0119 zacz\u0105\u0107 <a href=\"http:\/\/www.dictionary.com\/browse\/armchair-quarterback\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">rozgrywa\u0107 fotela<\/a> .)<\/p>\n<p>Ale oto pytanie:<\/p>\n<p>Je\u015bli istnieje obszar interfejsu u\u017cytkownika WordPress, kt\u00f3ry mo\u017cna ulepszy\u0107 za pomoc\u0105 wtyczki, kt\u00f3ra ma ten sam zestaw funkcji, kt\u00f3ry ju\u017c istnieje we wtyczce, czy warto utworzy\u0107 wtyczk\u0119, je\u015bli funkcja ju\u017c istnieje?<\/p>\n<p>Czy ma sens tworzenie wtyczek WordPress dla istniej\u0105cych funkcji, je\u015bli wtyczka jest zgodna z filozofi\u0105 \u201eprojekty, a nie opcje&quot; bardziej ni\u017c podstawowa funkcja?<\/p>\n<p>Po pierwsze, dostrzegam brak logiki zawarty w tym stwierdzeniu. Mam na my\u015bli to, co mam na zewn\u0105trz to:<\/p>\n<ol>\n<li>Musimy podejmowa\u0107 wi\u0119cej decyzji w imieniu u\u017cytkownika i oferowa\u0107 mu mniej opcji.<\/li>\n<li>Opcja ju\u017c istnieje w rdzeniu.<\/li>\n<li>Stworzenie wtyczki do wprowadzenia funkcjonalno\u015bci, kt\u00f3ra ju\u017c istnieje, a tym samym jej powielanie, ale usprawnianie tak, aby podejmowa\u0142a decyzj\u0119 za u\u017cytkownika w jego imieniu.<\/li>\n<\/ol>\n<p>By\u0107 mo\u017ce wi\u0119c dyskusja ko\u0144czy si\u0119 na trzecim punkcie powy\u017cej. Ale ze wzgl\u0119du na dyskusj\u0119 (dla k\u0142\u00f3tni, je\u015bli to tw\u00f3j gust), chc\u0119 wzi\u0105\u0107 przyk\u0142ad tylko do tego postu.<\/p>\n<h3>Spojrzenie na ustawienia dyskusji<\/h3>\n<p>Ustawienia dyskusji, kt\u00f3re istniej\u0105 w\u00a0 menu <strong>Ustawienia<\/strong> dla WordPressa, mog\u0105 by\u0107 nieco przyt\u0142aczaj\u0105ce, nawet dla, jak s\u0105dz\u0119, blogera na poziomie \u015bredniozaawansowanym, nie m\u00f3wi\u0105c ju\u017c o pocz\u0105tkuj\u0105cym lub deweloperskim typie.<\/p>\n<p>Ekran ustawie\u0144 dyskusji.<\/p>\n<p>Troch\u0119 czasu zajmuje nie tylko przeczytanie istniej\u0105cych opcji, ale tak\u017ce zrozumienie ich. S\u0105 te\u017c bardziej zaawansowane opcje, takie jak <strong>Czarna lista komentarzy<\/strong>, kt\u00f3re moim zdaniem mog\u0105 by\u0107 cz\u0119\u015bci\u0105\u00a0 karty <strong>Zaawansowane<\/strong>.<\/p>\n<p>Ale robi\u0119 dygresj\u0119.<\/p>\n<p><strong>W obszarze Inne ustawienia komentarzy<\/strong> dost\u0119pna jest opcja\u00a0, kt\u00f3ra stwierdza:<\/p>\n<p>\u201eAutomatycznie zamykaj komentarze do artyku\u0142\u00f3w starszych ni\u017c [x] dni&#8221;.<\/p>\n<p>Ta funkcja sama w sobie nie jest z\u0142a, ale co, je\u015bli chc\u0119 zamyka\u0107 komentarze do artyku\u0142\u00f3w starszych ni\u017c [x] dni tylko wtedy, gdy maj\u0105 0 komentarzy. Teraz ten warunek \u2013 to znaczy \u201eje\u015bli maj\u0105 0 komentarzy&#8221; \u2013 my\u015bl\u0119, \u017ce jest przyk\u0142adem tego, co mo\u017ce obs\u0142u\u017cy\u0107 wtyczka.<\/p>\n<p>Ale opcja, kt\u00f3ra jest prezentowana tak, jak jest. To znaczy:<\/p>\n<p>\u201eAutomatycznie zamykaj komentarze do artyku\u0142\u00f3w starszych ni\u017c [x] dni&#8221;.<\/p>\n<p>Widz\u0119 pow\u00f3d, dla kt\u00f3rego jest to opcja. Nikt nie powinien podejmowa\u0107 w imieniu u\u017cytkownika decyzji o sposobie post\u0119powania z jego komentarzami.<\/p>\n<ul>\n<li>Czy jednak spos\u00f3b, w jaki jest prezentowany, jest tak klarowny, jak m\u00f3g\u0142by by\u0107?<\/li>\n<li>Czy ekran sam w sobie sprzyja temu, by u\u017cytkownicy czytali, odpowiadali, dostrajali i jest to konieczne? A mo\u017ce jest tak prze\u0142adowany opcjami, \u017ce po prostu si\u0119 z niego wycofuj\u0105?<\/li>\n<li>Czy ta konkretna funkcja mo\u017ce zosta\u0107 przeniesiona do wtyczki (lub cz\u0119\u015bci zestawu wtyczek) bezpo\u015brednio zwi\u0105zanej z zarz\u0105dzaniem komentarzami, aby umo\u017cliwi\u0107 u\u017cytkownikom kontrolowanie ich komentarzy za pomoc\u0105 wtyczek?<\/li>\n<\/ul>\n<p>W ko\u0144cu wtyczki s\u0142u\u017c\u0105 przede wszystkim funkcjonalno\u015bci, a moderowanie komentarzy ma wi\u0119cej wsp\u00f3lnego z funkcjonalno\u015bci\u0105 ni\u017c prezentacj\u0105.<\/p>\n<p>Czy ma sens tworzenie wtyczki WordPress dla istniej\u0105cych funkcji, takich jak ta, z my\u015bl\u0105, \u017ce jest to prosta instalacja, aktywacja i uruchomienie, dla u\u017cytkownik\u00f3w bez konieczno\u015bci skanowania ca\u0142ej listy opcji i zrozumienia tego, co jest prezentowane ich?<\/p>\n<p>Osobi\u015bcie jestem na ogrodzeniu, ale naprawd\u0119 jestem zainteresowany przynajmniej eksperymentowaniem z nim, aby zobaczy\u0107, jak mo\u017ce dzia\u0142a\u0107. Jasne, oznacza to, \u017ce powinienem umie\u015bci\u0107 sw\u00f3j kod tam, gdzie s\u0105 moje my\u015bli \u2013 i mo\u017ce b\u0119d\u0119 \ud83d\ude0e \u2013 ale to nie zmienia faktu, \u017ce jestem ciekawy pomys\u0142\u00f3w dla innych.<\/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>Czy ma sens tworzenie wtyczek WordPress dla istniej\u0105cych funkcji, je\u015bli jest bardziej zgodny z filozofi\u0105 \u201eprojekty, a nie opcje\u201d?<\/p>\n","protected":false},"author":1,"featured_media":221177,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[721,919,866,815],"tags":[1169],"class_list":["post-228681","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-inny","category-wordpress-7","category-wtyczki","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/228681","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=228681"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/228681\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/221177"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=228681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=228681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=228681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}