{"id":26693,"date":"2021-04-27T13:53:00","date_gmt":"2021-04-27T10:53:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26693"},"modified":"2021-10-18T03:54:28","modified_gmt":"2021-10-18T00:54:28","slug":"przewodnik-po-tym-jak-ulepszyc-standardy-kodowania-wordpress","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/przewodnik-po-tym-jak-ulepszyc-standardy-kodowania-wordpress\/","title":{"rendered":"Przewodnik po tym, jak ulepszy\u0107 standardy kodowania WordPress"},"content":{"rendered":"<p>Je\u015bli jeste\u015b programist\u0105, to zdecydowanie szukasz poprawy swoich standard\u00f3w kodowania. Ka\u017cdy j\u0119zyk programowania i jego CMS\/Frameworks ustanowi\u0142y w\u0142asne standardy kodowania. W tym artykule dowiemy si\u0119, jak poprawi\u0107 standardy kodowania WordPress.<\/p>\n<p>Napisali\u015bmy artyku\u0142 na temat <a href=\"https:\/\/themewp.inform.click\/pl\/php_codesniffer-biblioteka-do-ulepszania-standardow-kodowania-php\/\" title=\"ulepszania standard\u00f3w kodowania PHP\" >ulepszania standard\u00f3w kodowania PHP<\/a>. Powiniene\u015b najpierw zapozna\u0107 si\u0119 z tym artyku\u0142em, zanim przejdziesz do standard\u00f3w kodowania dla rozwoju WordPressa.<\/p>\n<h3>B\u0142\u0119dy, kt\u00f3re pope\u0142niamy podczas programowania WordPress<\/h3>\n<p>Ka\u017cda praca rozwojowa ma inne rozwi\u0105zania. Prawdopodobnie ka\u017cdy programista implementuje inny spos\u00f3b\/logik\u0119, aby da\u0107 ten sam wynik. To naturalne w \u015bwiecie programowania.<\/p>\n<p>Za\u0142\u00f3\u017cmy na przyk\u0142ad, \u017ce dodali\u015bmy jednorazow\u0105 warto\u015b\u0107 w naszym formularzu rejestracyjnym, aby unikn\u0105\u0107 atak\u00f3w CSRF.<\/p>\n<pre><code>&lt;form method=\"post\"&gt;\n&lt;?php wp_nonce_field( 'signup_nonce', 'signup_form_nonce' ); ?&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Przesy\u0142aj\u0105c formularz musimy sprawdzi\u0107, czy \u017caden nie jest poprawny, czy nie. Zwykle programista, kt\u00f3ry nie zna standard\u00f3w kodowania, robi to w nast\u0119puj\u0105cy spos\u00f3b.<\/p>\n<pre><code>&lt;?php\nif (! isset( $_POST['signup_form_nonce']) ||! wp_verify_nonce( $_POST['signup_form_nonce'], 'signup_nonce')) {\n\u00a0\n\u00a0\u00a0\u00a0print 'Sorry, your nonce did not verify.';\n\u00a0\u00a0\u00a0exit;\n\u00a0\n} else {\n\u00a0\n\u00a0\u00a0\u00a0\/\/ process form data\n}\n?&gt;<\/code><\/pre>\n<p>W powy\u017cszym kodzie nie ma nic z\u0142ego. Ale to nie jest dobra praktyka. Podczas pobierania warto\u015bci p\u00f3l tekstowych powinni\u015bmy u\u017cywa\u0107 <code>sanitize_text_field()<\/code>i <code>wp_unslash()<\/code>funkcji na warto\u015bciach p\u00f3l wej\u015bciowych.<\/p>\n<p><a href=\"https:\/\/codex.wordpress.org\/Validating_Sanitizing_and_Escaping_User_Data\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a>Metoda <a href=\"https:\/\/codex.wordpress.org\/Validating_Sanitizing_and_Escaping_User_Data\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sanitize_text_field<\/a> wykonuje w tle nast\u0119puj\u0105cy proces.<\/p>\n<ul>\n<li>Sprawdza nieprawid\u0142owy kod UTF-8<\/li>\n<li>Konwertuje pojedyncze &lt; znak\u00f3w na encj\u0119<\/li>\n<li>Zdziera wszystkie tagi<\/li>\n<li>Usu\u0144 podzia\u0142y wierszy, tabulatory i dodatkowe spacje<\/li>\n<li>Oktety paskowe<\/li>\n<\/ul>\n<p><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_unslash\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a>metoda <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_unslash\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_unsplash<\/a> usuwa uko\u015bniki z ci\u0105gu lub tablicy ci\u0105g\u00f3w.<\/p>\n<p>Powiedziawszy to, nasz poprzedni kod powinien wygl\u0105da\u0107 jak poni\u017cej.<\/p>\n<pre><code>&lt;?php\nif (! isset( $_POST['signup_form_nonce']) ||! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['signup_form_nonce']) ), 'signup_nonce')) {\n\u00a0\n\u00a0\u00a0\u00a0print 'Sorry, your nonce did not verify.';\n\u00a0\u00a0\u00a0exit;\n\u00a0\n} else {\n\u00a0\n\u00a0\u00a0\u00a0\/\/ process form data\n}\n?&gt;<\/code><\/pre>\n<p>To jest jeden przyk\u0142ad. Istnieje kilka innych b\u0142\u0119d\u00f3w, kt\u00f3re pope\u0142niamy w naszym programowaniu WordPress.<\/p>\n<h3>Zainstaluj bibliotek\u0119 standard\u00f3w kodowania WordPress<\/h3>\n<p><a href=\"https:\/\/github.com\/WordPress-Coding-Standards\/WordPress-Coding-Standards\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Ta biblioteka<\/a> pomo\u017ce nam ulepszy\u0107 nasze standardy kodowania w programowaniu WordPress i sprawi\u0107, \u017ce staniemy si\u0119 lepszym programist\u0105 WordPress.<\/p>\n<p>Aby zainstalowa\u0107 t\u0119 bibliotek\u0119, otw\u00f3rz wiersz polece\u0144 w katalogu g\u0142\u00f3wnym projektu i uruchom poni\u017csze polecenie.<\/p>\n<p><code>composer create-project wp-coding-standards\/wpcs --no-dev<\/code><\/p>\n<p><strong>Uwaga:<\/strong> Aby uruchomi\u0107 powy\u017csz\u0105 komend\u0119, w systemie powinien by\u0107 zainstalowany <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kompozytor<\/a>.<\/p>\n<p>Po uruchomieniu polecenia utworzy folder o nazwie \u201ewpcs&quot; w katalogu g\u0142\u00f3wnym projektu.<\/p>\n<p>Zak\u0142adamy, \u017ce przeczyta\u0142e\u015b nasz artyku\u0142 o <a href=\"https:\/\/themewp.inform.click\/pl\/php_codesniffer-biblioteka-do-ulepszania-standardow-kodowania-php\/\" title=\"ulepszaniu standard\u00f3w kodowania PHP\">ulepszaniu standard\u00f3w kodowania PHP<\/a> i zainstalowa\u0142e\u015b bibliotek\u0119 PHP_CodeSniffer w folderze 'php_codesniffer&#8217; w katalogu g\u0142\u00f3wnym projektu.<\/p>\n<p>Nast\u0119pnie musimy zarejestrowa\u0107 standardy WordPress w konfiguracji PHP_CodeSniffer. Otw\u00f3rz wiersz polecenia w \u201ephp_codesniffer\/vendor\/bin&#8221; i uruchom poni\u017csze polecenie.<\/p>\n<p><code>phpcs --config-set installed_paths \/path\/to\/wpcs<\/code><\/p>\n<p>Zast\u0105p '\/\u015bcie\u017cka\/do\/wpcs&#8217; swoj\u0105 \u015bcie\u017ck\u0105. W naszym przypadku na platformie Windows polecenie piszemy w nast\u0119puj\u0105cy spos\u00f3b.<\/p>\n<p><code>phpcs --config-set installed_paths D:wampwwwwp1wpcs<\/code><\/p>\n<h3>Dowiedzmy si\u0119 o naszych b\u0142\u0119dach i poprawmy standardy kodowania WordPress<\/h3>\n<p>Ustawili\u015bmy si\u0119 z nasz\u0105 bibliotek\u0105. Teraz nadszed\u0142 czas, aby znale\u017a\u0107 nasze b\u0142\u0119dy i unikn\u0105\u0107 ich nast\u0119pnym razem.<\/p>\n<p>Za\u0142\u00f3\u017cmy, \u017ce stworzyli\u015bmy wtyczk\u0119 \u201etest-plugin&#8221; i musimy zweryfikowa\u0107 plik o nazwie \u201ecore.php&#8221;.<\/p>\n<p>Otw\u00f3rz wiersz polecenia w katalogu \u201ewpcs\/vendor\/bin&#8221; i uruchom poni\u017csze polecenie.<\/p>\n<p><code>phpcs --standard=WordPress D:wampwwwwp1wp-contentpluginstest-plugincore.php<\/code><\/p>\n<p>Po uruchomieniu polecenia pojawi si\u0119 monit z b\u0142\u0119dami i ostrze\u017ceniami. Wszystkie te b\u0142\u0119dy i ostrze\u017cenia pojawiaj\u0105 si\u0119, poniewa\u017c nie przestrzegali\u015bmy standardowych praktyk kodowania dla rozwoju WordPressa.<\/p>\n<p>Dobr\u0105 cz\u0119\u015bci\u0105 jest to, \u017ce otrzymujemy szczeg\u00f3\u0142owy raport o numerach linii i sposobie poprawienia tego konkretnego b\u0142\u0119du. Wystarczy spojrze\u0107 na wytyczne i poprawi\u0107 b\u0142\u0119dy jeden po drugim.<\/p>\n<p><code>phpcbf<\/code> polecenie mo\u017ce r\u00f3wnie\u017c poprawi\u0107 niekt\u00f3re drobne b\u0142\u0119dy, takie jak wci\u0119cia, spacje itp.<\/p>\n<p><code>phpcbf --standard=WordPress D:wampwwwwp1wp-contentpluginstest-plugincore.php<\/code><\/p>\n<p>Mamy nadziej\u0119, \u017ce rozumiesz, jak korzysta\u0107 z biblioteki standard\u00f3w kodowania WordPress, aby poprawi\u0107 standardy kodowania WordPress. Je\u015bli masz jakie\u015b pytania lub sugestie, zostaw komentarz poni\u017cej.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chcesz poprawi\u0107 swoje standardy kodowania WordPress? W tym artykule poka\u017cemy, jak znale\u017a\u0107 b\u0142\u0119dy standard\u00f3w kodowania w naszym programowaniu WordPress i<\/p>\n","protected":false},"author":1,"featured_media":21633,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[416,612],"tags":[847],"class_list":["post-26693","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-roznorodny","category-uncategorized-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/26693","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=26693"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/26693\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21633"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=26693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=26693"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=26693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}