{"id":4962,"date":"2021-05-12T08:30:58","date_gmt":"2021-05-12T06:30:58","guid":{"rendered":"https:\/\/pomoc.dhosting.pl\/?p=4962"},"modified":"2026-05-06T11:18:16","modified_gmt":"2026-05-06T09:18:16","slug":"jak-stworzyc-wtyczke-do-wordpressa","status":"publish","type":"post","link":"https:\/\/dhosting.pl\/pomoc\/jak-stworzyc-wtyczke-do-wordpressa\/","title":{"rendered":"Jak stworzy\u0107 wtyczk\u0119 do WordPressa? Poradnik dla pocz\u0105tkuj\u0105cych"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"photo-border aligncenter wp-image-5211 size-full\" src=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2021\/02\/jak-stworzyc-wtyczke-do-wordpressa.jpg\" alt=\"jak stworzy\u0107 wtyczk\u0119 do wordpressa\" width=\"945\" height=\"400\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2021\/02\/jak-stworzyc-wtyczke-do-wordpressa.jpg 945w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2021\/02\/jak-stworzyc-wtyczke-do-wordpressa-300x127.jpg 300w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2021\/02\/jak-stworzyc-wtyczke-do-wordpressa-768x325.jpg 768w\" sizes=\"auto, (max-width: 945px) 100vw, 945px\" \/><\/p>\n<p>Wtyczka do WordPressa to nic innego jak fragment kodu, kt\u00f3rego g\u0142\u00f3wnym zadaniem jest rozszerzenie podstawowych funkcji aplikacji. W wi\u0119kszo\u015bci paneli administracyjnych funkcjonuje koncepcja modu\u0142\u00f3w, kt\u00f3re stanowi\u0105 swego rodzaju osobne organizmy implementuj\u0105ce w\u0142asne procedury, klasy, metody, interfejsy czy funkcje. W tym przypadku kluczowe jest s\u0142owo \u201eosobne\u201d, poniewa\u017c wtyczki s\u0105 niezale\u017cne i wymienne. Mo\u017cna je w\u0142\u0105cza\u0107 oraz wy\u0142\u0105cza\u0107 w dowolnym momencie.<\/p>\n<p>Przy ich pomocy mo\u017cesz nadpisywa\u0107 i zmienia\u0107 dzia\u0142anie ca\u0142ego WordPressa \u2013 zar\u00f3wno od strony back-endu jak i front-endu. Ta koncepcja ma swoje \u017ar\u00f3d\u0142o w programowaniu obiektowym, w kt\u00f3rym program stanowi zbi\u00f3r obiekt\u00f3w, kt\u00f3re \u2013 aby wykona\u0107 dane zadanie \u2013 komunikuj\u0105 si\u0119 mi\u0119dzy sob\u0105. Sam WordPress jest na tyle elastyczny, \u017ce mo\u017ce przyj\u0105\u0107 nawet najbardziej nietuzinkowe koncepcje, a tw\u00f3rc\u0119 ogranicza jedynie wyobra\u017ania i w\u0142asne umiej\u0119tno\u015bci.<\/p>\n<p>W ramach poradnika stworzysz wtyczk\u0119 pozwalaj\u0105c\u0105 na dodanie logotyp\u00f3w klient\u00f3w w formie karuzeli, kt\u00f3ra b\u0119dzie wy\u015bwietla\u0142a si\u0119 w menu panelu administracyjnego WordPressa, pozwala\u0142a na dzielenie klient\u00f3w na kategorie, dodanie nazwy firm czy logotypu. Nast\u0119pnie wtyczka pozwoli wywo\u0142a\u0107 karuzel\u0119 (w ca\u0142o\u015bci lub tylko z wybranych kategorii) na danej stronie przy u\u017cyciu shortcode.<\/p>\n<p>Tak prezentuje si\u0119 ko\u0144cowy efekt w panelu WordPressa:<\/p>\n<p><a href=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"photo-border aligncenter wp-image-4618\" src=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/1.jpg\" alt=\"wygl\u0105d wtyczki w panelu\" width=\"800\" height=\"356\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/1.jpg 963w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/1-300x134.jpg 300w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/1-768x342.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>Poni\u017cej natomiast znajduje si\u0119 wygl\u0105d strony po wywo\u0142aniu wtyczki:<\/p>\n<p><a href=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"photo-border aligncenter wp-image-4619\" src=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/2.jpg\" alt=\"efekt ko\u0144cowy wtyczki\" width=\"800\" height=\"266\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/2.jpg 1069w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/2-300x100.jpg 300w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/2-1024x341.jpg 1024w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/2-768x256.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>Na ko\u0144cu artyku\u0142u znajdziesz do pobrania paczk\u0119 z wtyczk\u0105 gotow\u0105 do uruchomienia w swoim WordPressie.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Do_kogo_kierowany_jest_ten_poradnik\"><\/span>Do kogo kierowany jest ten poradnik?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>Omawiane zagadnienia wymagaj\u0105 wcze\u015bniejszej styczno\u015bci i do\u015bwiadczenia w programowaniu w j\u0119zyku PHP i podstawowej znajomo\u015bci JavaScript.<\/li>\n<li>Niezb\u0119dna jest r\u00f3wnie\u017c podstawowa znajomo\u015b\u0107 WordPress Hooks (element Plugin API WordPressa).<\/li>\n<li>Znajomo\u015b\u0107 MySQL i struktury bazy danych WordPressa.<\/li>\n<li>Znajomo\u015b\u0107 HTML oraz CSS.<\/li>\n<\/ul>\n<div id=\"dhost-894323559\" class=\"dhost-inpost dhost-entity-placement\"><a href=\"https:\/\/dhosting.pl\/opieka-stron.html?utm_source=pomoc&utm_medium=artykul&utm_campaign=pomoc\" target=\"_blank\">\r\n\t<img decoding=\"async\" src=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2025\/01\/baner-opieka.png\" alt=\"opieka stron www\">\r\n<\/a>\r\n<br \/>\r\n<br \/><\/div><h2><span class=\"ez-toc-section\" id=\"Czego_potrzebujesz\"><\/span>Czego potrzebujesz?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>Edytora kodu \u017ar\u00f3d\u0142owego. Do stworzenia poradnika wykorzystywa\u0142em Visual Studio Code autorstwa Microsoftu dystrybuowanego na licencji MIT, kt\u00f3ry mo\u017cna pobra\u0107 za darmo ze strony producenta.<\/li>\n<li>Klienta FTP. Osobi\u015bcie korzystam z FileZilla, kt\u00f3ry jest dost\u0119pny do pobrania za darmo na stronie producenta.<\/li>\n<li>Cierpliwo\u015bci, ch\u0119ci, wyobra\u017ani i czasu.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Czego_sie_nauczysz\"><\/span>Czego si\u0119 nauczysz?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Zrozumiesz podstawowe koncepcje tworzenia wtyczek, co pozwoli Ci rozpocz\u0105\u0107 przygod\u0119 z realizacj\u0105 wszelkich pomys\u0142\u00f3w zwi\u0105zanych z WordPressem. Pami\u0119taj jednak, \u017ce kluczowa jest praktyka, wi\u0119c musisz jak najwi\u0119cej pisa\u0107, \u017ceby si\u0119 rozwija\u0107. Samo czytanie stanowi tylko wst\u0119p.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Krok_0_%E2%80%93_informacje_na_start\"><\/span>Krok 0 \u2013 informacje na start<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Przed rozpocz\u0119ciem jakichkolwiek prac musisz zmieni\u0107 warto\u015b\u0107 <span class=\"code-short-format\">WP_DEBUG<\/span> na <span class=\"code-short-format\">true<\/span> w pliku <span class=\"code-short-format\">wp-config.php<\/span>.<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">\/** \n* Dla programist\u00f3w: tryb debugowania WordPressa. \n* \n* Zmie\u0144 warto\u015b\u0107 tej sta\u0142ej na true, aby w\u0142\u0105czy\u0107 wy\u015bwietlanie ostrze\u017ce\u0144 \n* podczas modyfikowania kodu WordPressa. \n* Wielce zalecane jest, aby tw\u00f3rcy wtyczek oraz motyw\u00f3w u\u017cywali \n* WP_DEBUG w miejscach pracy nad nimi. \n*\/ \ndefine(&#039;WP_DEBUG&#039;, true);<\/code><\/pre>\n<p>Po zmianie WordPress b\u0119dzie wy\u015bwietla\u0142 wszystkie komunikaty o b\u0142\u0119dach oraz inne istotne z punktu widzenia programisty powiadomienia. Dzi\u0119ki nim mo\u017cesz weryfikowa\u0107 dzia\u0142anie tworzonego kodu i odpowiednio reagowa\u0107.<\/p>\n<div class=\"info-alert-format\" style=\"padding: 30px 20px 10px 82px;\">\n<p>Pami\u0119taj o zmianie WP_DEBUG na false po zako\u0144czeniu prac.<\/p>\n<\/div>\n<p>Przechodzimy do dzia\u0142ania! Stw\u00f3rz folder <span class=\"code-short-format\">klienci<\/span>, kt\u00f3ry b\u0119dzie zawiera\u0142 wszystkie pliki wtyczki. Mo\u017cesz utworzy\u0107 go w Visual Studio Code oraz wykonywa\u0107 wszystkie pozosta\u0142e operacje ju\u017c z poziomu tej aplikacji \u2013 to zdecydowanie przyspieszy ca\u0142y proces.<\/p>\n<p>Po\u0142\u0105cz si\u0119 r\u00f3wnie\u017c przez klienta FTP do swojego serwera z zainstalowanym WordPressem i przejd\u017a do folderu <span class=\"code-short-format\">\/wp-content\/plugins<\/span>, do kt\u00f3rego dodasz wszystkie pliki, a nast\u0119pnie b\u0119dziesz je aktualizowa\u0107. Mo\u017cesz to robi\u0107 usuwaj\u0105c i dodaj\u0105c ponownie wtyczk\u0119 w panelu administracyjnym WordPressa, ale to rozwi\u0105zanie jest skrajnie niewygodne i tylko wyd\u0142u\u017ca prace.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Krok_1_%E2%80%93_Struktura_i_tworzenie_pliku_glownego\"><\/span>Krok 1 \u2013 Struktura i tworzenie pliku g\u0142\u00f3wnego<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Wewn\u0105trz folderu <span class=\"code-short-format\">klienci<\/span> utw\u00f3rz plik g\u0142\u00f3wny <span class=\"code-short-format\">clients-carousel.php<\/span>, a nast\u0119pnie dodaj w nim pozosta\u0142e katalogi tak, \u017ceby zachowa\u0107 poni\u017csz\u0105 struktur\u0119.<\/p>\n<div class=\"code-format\">\n<p style=\"padding: 0;\">\/klienci<\/p>\n<p style=\"padding: 0 0 0 40px;\">\/includes<\/p>\n<p style=\"padding: 0 0 0 40px;\">\/public<\/p>\n<p style=\"padding: 0 0 0 40px;\">\/css<\/p>\n<p style=\"padding: 0 0 0 40px;\">\/js<\/p>\n<p>clients-carousel.php<\/p>\n<\/div>\n<p>Ca\u0142a wtyczka b\u0119dzie utrzymana w powy\u017cszej prostej formie na potrzeby poradnika. Dzi\u0119ki temu od razu b\u0119dziesz widzie\u0107, co z czego dok\u0142adnie wynika bez rozbijania p\u00f3\u017aniejszych element\u00f3w na zbyt du\u017c\u0105 liczb\u0119 klas czy funkcji.<\/p>\n<p>Plik g\u0142\u00f3wny (<span class=\"code-short-format\">clients-carousel.php<\/span>) jest podstawowym elementem, dzi\u0119ki kt\u00f3remu WordPress rozpoznaje wtyczk\u0119. Jest to zawsze plik PHP z zakomentowanymi informacjami.<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">&lt;?php \n\/* \nPlugin Name: Karuzela klient\u00f3w \/ poradnik dhosting \nPlugin URI: https:\/\/dhosting.pl \nDescription: Karuzela z logotypami wywo\u0142ywana za pomoc\u0105 shortcode&#039;a, w panelu mo\u017cliwo\u015b\u0107 utworzenia w\u0142asnego podzia\u0142u - kategorii. Realizacja w ramach poradnika odno\u015bnie pisania wtyczek na WordPress. \nAuthor: Roman Lorent \nVersion: 1.0.0 \nAuthor URI: https:\/\/pozyskajklienta.pl \n*\/<\/code><\/pre>\n<p>Pami\u0119taj o tym, \u017ceby nie zamyka\u0107 ca\u0142o\u015bci przy pomocy tagu <span class=\"code-short-format\">?&gt;<\/span> oraz o tym, \u017ce rozpoczynaj\u0105cy tag <span class=\"code-short-format\">&lt;?php<\/span> musi si\u0119 znale\u017a\u0107 w pierwszej linii. Je\u017celi dodasz przed nim odst\u0119p, w trakcie aktywacji wtyczki pojawi si\u0119 adekwatne ostrze\u017cenie.<\/p>\n<div class=\"info-alert-format\">\n<p>Wszystkie pola, kt\u00f3re WordPress odczytuje z zakomentowanego tekstu mo\u017cesz znale\u017a\u0107 w <a href=\"https:\/\/developer.wordpress.org\/plugins\/plugin-basics\/header-requirements\/\" target=\"_blank\" rel=\"noopener\">oficjalnej dokumentacji<\/a>.<\/p>\n<\/div>\n<p>Plik mo\u017cesz teraz wys\u0142a\u0107 przez FTP do katalogu wtyczki w WordPressie:<\/p>\n<p><a href=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"photo-border aligncenter wp-image-4622 size-full\" src=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/3.jpg\" alt=\"wys\u0142anie wtyczki na serwer\" width=\"311\" height=\"283\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/3.jpg 311w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/3-300x273.jpg 300w\" sizes=\"auto, (max-width: 311px) 100vw, 311px\" \/><\/a><\/p>\n<p>Po wysy\u0142ce pliku upewnij si\u0119, \u017ce WordPress prawid\u0142owo odczyta\u0142 wszystkie informacje.<\/p>\n<p><a href=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"photo-border aligncenter wp-image-4623\" src=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/4.jpg\" alt=\"wtyczka na li\u015bcie wtyczek\" width=\"800\" height=\"162\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/4.jpg 1481w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/4-300x61.jpg 300w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/4-1024x207.jpg 1024w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/4-768x155.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Krok_2_%E2%80%93_Dodawanie_i_rejestrowanie_nowego_typu_postow\"><\/span>Krok 2 \u2013 Dodawanie i rejestrowanie nowego typu post\u00f3w<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>WordPress odczytuje ju\u017c folder jako wtyczk\u0119, kt\u00f3ra jeszcze nic nie robi poza tym, \u017ce jest widoczna na li\u015bcie wtyczek. Teraz mo\u017cesz zdefiniowa\u0107 nowy typ postu \u2013 Klienci.<\/p>\n<p>W folderze <span class=\"code-short-format\">includes<\/span> dodaj plik <span class=\"code-short-format\">clients.php<\/span>, w kt\u00f3rym zarejestrujesz nowy typ postu:<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">&lt;?php  \n \nfunction register_dh_client()  \n{ \n  register_post_type( &#039;dh_clients&#039;, array( \n            &#039;labels&#039; =&gt; array( \n                &#039;name&#039; =&gt; __( &#039;Klienci&#039; ), \n                &#039;singular_name&#039; =&gt; __( &#039;Klient&#039; ), \n                &#039;add_new&#039;               =&gt; __( &#039;Dodaj klienta&#039; ), \n                &#039;add_new_item&#039;          =&gt; __( &#039;Dodaj nowego klienta&#039; ), \n            ), \n            &#039;public&#039; =&gt; true, \n            &#039;supports&#039; =&gt; array( &#039;title&#039;, &#039;thumbnail&#039;) \n    )); \n} \nadd_action( &#039;init&#039;, &#039;register_dh_client&#039;, 0);<\/code><\/pre>\n<p>Zgodnie z powy\u017cszym kodem typ <span class=\"code-short-format\">klient<\/span> b\u0119dzie obs\u0142ugiwa\u0142 dwa pola: <span class=\"code-short-format\">title<\/span> i <span class=\"code-short-format\">thunbnail<\/span> (<span class=\"code-short-format\">&#8216;supports&#8217; =&gt; array( &#8216;title&#8217;, &#8216;thumbnail&#8217;)<\/span>), wi\u0119c widoczne b\u0119d\u0105 tylko te opcje przy dodawaniu nowego klienta.<\/p>\n<p>Nazwa ta nie powinna przekracza\u0107 20 znak\u00f3w \u2013 w bazie danych jest przechowywany <span class=\"code-short-format\">post_type<\/span> jako <span class=\"code-short-format\">VARCHAR<\/span> o takiej maksymalnej d\u0142ugo\u015bci. Nale\u017cy unika\u0107 r\u00f3wnie\u017c konfliktu z innymi typami post\u00f3w. Nie korzystaj z przedrostka <span class=\"code-short-format\">wp_<\/span> w nazwie, poniewa\u017c to te\u017c mo\u017ce wygenerowa\u0107 konflikt.<\/p>\n<p>\u017beby WordPress wiedzia\u0142, \u017ce stworzony element ma by\u0107 wykorzystywany, musisz go za\u0142\u0105czy\u0107 w pliku g\u0142\u00f3wnym:<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">&lt;?php \n\/* \nPlugin Name: Karuzela klient\u00f3w \/ poradnik dhosting \nPlugin URI: https:\/\/dhosting.pl \nDescription: Karuzela z logotypami wywo\u0142ywana za pomoc\u0105 shortcode&#039;a, w panelu mo\u017cliwo\u015b\u0107 utworzenia w\u0142asnego podzia\u0142u - kategorii. Realizacja w ramach poradnika odno\u015bnie pisania wtyczek na WordPress. \nAuthor: Roman Lorent \nVersion: 1.0.0 \nAuthor URI: https:\/\/pozyskajklienta.pl \n*\/ \n \ninclude_once( plugin_dir_path( __FILE__ ) . &#039;includes\/clients.php&#039;); <\/code><\/pre>\n<p>Po aktualizacji plik\u00f3w nowy rodzaj postu b\u0119dzie widoczny w panelu:<\/p>\n<p><a href=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/5.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"photo-border aligncenter wp-image-4624\" src=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/5.jpg\" alt=\"nowy rodzaj postu w panelu\" width=\"800\" height=\"362\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/5.jpg 1265w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/5-300x136.jpg 300w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/5-1024x464.jpg 1024w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/5-768x348.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Krok_3_%E2%80%93_tworzenie_taksonomii_dla_nowego_typu_postu\"><\/span>Krok 3 \u2013 tworzenie taksonomii dla nowego typu postu<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>WordPress daje mo\u017cliwo\u015b\u0107 podzia\u0142u postu na grupy \u2013 tworzenie taksonomii. Podstawowe g\u0142\u00f3wne typy to kategorie oraz tagi. Kategorie tworz\u0105 hierarch\u0119, a tagi s\u0105 typem p\u0142askim. W ramach <span class=\"code-short-format\">post_type<\/span> mo\u017cesz korzysta\u0107 z wielu taksonomii r\u00f3\u017cnego rodzaju.<\/p>\n<p>Je\u017celi chcesz doda\u0107 funkcj\u0119 grupowania utworzonych klient\u00f3w, zdefiniuj taksonomi\u0119:<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">function register_dh_client_tax()  \n{ \n    register_taxonomy( &#039;grupa&#039;, &#039;dh_clients&#039;, array( \n        &#039;rewrite&#039;      =&gt; array( &#039;slug&#039; =&gt; &#039;grupa&#039; ), \n        &#039;label&#039;        =&gt; __(&#039;Grupy klient\u00f3w&#039;), \n        &#039;hierarchical&#039; =&gt; true, \n    )); \n} \nadd_action( &#039;init&#039;, &#039;register_dh_client_tax&#039;, 0); <\/code><\/pre>\n<p>Warto\u015b\u0107 <span class=\"code-short-format\">&#8216;hierarchical&#8217; =&gt; true<\/span> definiuje taksonomi\u0119 w formie kategorii, a <span class=\"code-short-format\">false<\/span> definiuje j\u0105 jako tag. Nazewnictwo mo\u017cna r\u00f3wnie\u017c przedstawia\u0107 w formie <span class=\"code-short-format\">array();<\/span> z wi\u0119ksz\u0105 liczb\u0105 warto\u015bci:<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">$labels = array( \n\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f&#039;name&#039;\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f =&gt; __( &#039;Grupy klient\u00f3w&#039;), \n\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f&#039;singular_name&#039;\u202f\u202f\u202f\u202f =&gt; __( &#039;Grupa klient\u00f3w&#039;), \n\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f&#039;search_items&#039;\u202f\u202f\u202f\u202f\u202f =&gt; __( &#039;Szukaj grupy&#039; ), \n\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f&#039;all_items&#039;\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f =&gt; __( &#039;Zobacz wszystkich grupy&#039;), \n\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f&#039;parent_item&#039;\u202f\u202f\u202f\u202f\u202f\u202f =&gt; __( &#039;Nadrz\u0119dna grupa&#039;), \n\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f&#039;parent_item_colon&#039; =&gt; __( &#039;Nadrz\u0119dna grupa:&#039;), \n\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f&#039;edit_item&#039;\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f =&gt; __( &#039;Edytuj grup\u0119&#039;), \n\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f&#039;update_item&#039;\u202f\u202f\u202f\u202f\u202f\u202f =&gt; __( &#039;Aktualizuj grup\u0119&#039;), \n\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f&#039;add_new_item&#039;\u202f\u202f\u202f\u202f\u202f =&gt; __( &#039;dodaj now\u0105 grup\u0119&#039;), \n\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f&#039;new_item_name&#039;\u202f\u202f\u202f\u202f =&gt; __( &#039;Nazwa nowej grupy&#039;), \n\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f&#039;menu_name&#039;\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f =&gt; __( &#039;Grupy&#039;), \n\u202f\u202f\u202f\u202f\u202f); <\/code><\/pre>\n<p>Po zmianie nazewnictwa otrzymasz poni\u017csz\u0105 form\u0119 taksonomii:<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">function register_dh_client_tax()  \n{ \n    $labels = array( \n        &#039;name&#039;              =&gt; __( &#039;Grupy klient\u00f3w&#039;), \n        &#039;singular_name&#039;     =&gt; __( &#039;Grupa klient\u00f3w&#039;), \n        &#039;search_items&#039;      =&gt; __( &#039;Szukaj grupy&#039; ), \n        &#039;all_items&#039;         =&gt; __( &#039;Zobacz wszystkich grupy&#039; ), \n        &#039;parent_item&#039;       =&gt; __( &#039;Nadrz\u0119dna grupa&#039;), \n        &#039;parent_item_colon&#039; =&gt; __( &#039;Nadrz\u0119dna grupa:&#039;), \n        &#039;edit_item&#039;         =&gt; __( &#039;Edytuj grup\u0119&#039;), \n        &#039;update_item&#039;       =&gt; __( &#039;Aktualizuj grup\u0119&#039;), \n        &#039;add_new_item&#039;      =&gt; __( &#039;Nowa grupa&#039;), \n        &#039;new_item_name&#039;     =&gt; __( &#039;Nazwa nowej grupy&#039;), \n        &#039;menu_name&#039;         =&gt; __( &#039;Grupy&#039;), \n    ); \n    $args   = array( \n        &#039;hierarchical&#039;      =&gt; true,  \n        &#039;labels&#039;            =&gt; $labels, \n        &#039;rewrite&#039;           =&gt; [ &#039;slug&#039; =&gt; &#039;grupa&#039; ], \n    ); \n    register_taxonomy( &#039;grupa&#039;, [ &#039;dh_clients&#039; ], $args ); \n \n} \nadd_action( &#039;init&#039;, &#039;register_dh_client_tax&#039;, 0); <\/code><\/pre>\n<p>Na potrzeby test\u00f3w oraz \u0107wicze\u0144 mo\u017cesz definiowa\u0107 taksonomie w j\u0119zyku polskim, natomiast dobr\u0105 praktyk\u0105 jest u\u017cywanie angielskich nazw.<\/p>\n<p>Po aktualizacji wtyczki dost\u0119pne b\u0119dzie okre\u015blone wcze\u015bniej grupowanie:<\/p>\n<p><a href=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/6.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"photo-border aligncenter wp-image-4625\" src=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/6.jpg\" alt=\"grupy klient\u00f3w\" width=\"800\" height=\"496\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/6.jpg 1091w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/6-300x186.jpg 300w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/6-1024x635.jpg 1024w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/6-768x477.jpg 768w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/6-825x510.jpg 825w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/7.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"photo-border aligncenter wp-image-4626\" src=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/7.jpg\" alt=\"edycja grupy\" width=\"800\" height=\"133\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/7.jpg 813w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/7-300x50.jpg 300w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/7-768x128.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<div class=\"success-alert-format\">\n<p><strong>Nasze fachowe poradniki poszerz\u0105 Twoj\u0105 wiedz\u0119, a nasz Elastyczny Web Hosting sprawi, \u017ce Twoja strona b\u0119dzie dzia\u0142a\u0107 niezale\u017cnie od liczby odwiedzaj\u0105cych.<\/strong><\/p>\n<p>Ponadto na naszych serwerach dost\u0119pne jest ju\u017c popularne narz\u0119dzie WP-CLI, kt\u00f3re przy wi\u0119kszej liczbie instalacji WordPressa automatyzuje szereg powtarzalnych czynno\u015bci. Posiadamy tak\u017ce LiteSpeed Cache dla WordPressa, kt\u00f3ry znacznie skr\u00f3ci czas \u0142adowania Twojej strony.<\/p>\n<p><a href=\"https:\/\/dhosting.pl\/pp-fach\" target=\"_blank\" rel=\"noopener\"><strong>WYPR\u00d3BUJ HOSTING<\/strong><\/a><\/p>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"Krok_4_%E2%80%93_Pobieranie_i_wyswietlanie_klientow\"><\/span>Krok 4 \u2013 Pobieranie i wy\u015bwietlanie klient\u00f3w<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Dodaj kilku klient\u00f3w za po\u015brednictwem panelu administracyjnego:<\/p>\n<p><a href=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/8.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"photo-border aligncenter wp-image-4627\" src=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/8.jpg\" alt=\"dodawanie klient\u00f3w\" width=\"800\" height=\"415\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/8.jpg 1722w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/8-300x156.jpg 300w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/8-1024x531.jpg 1024w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/8-768x398.jpg 768w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/8-1536x797.jpg 1536w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/9.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"photo-border aligncenter wp-image-4628\" src=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/9.jpg\" alt=\"lista klient\u00f3w\" width=\"500\" height=\"406\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/9.jpg 598w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/9-300x243.jpg 300w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>Teraz utw\u00f3rz shortcode. W tym celu wewn\u0105trz folderu <span class=\"code-short-format\">includes<\/span> dodaj plik <span class=\"code-short-format\">shortcode.php<\/span>. Wewn\u0105trz okre\u015bl sw\u00f3j shortcode oraz ustal, co dok\u0142adnie ma zosta\u0107 pobrane:<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">&lt;?php  \n \nadd_shortcode( &#039;dh_clients&#039;,&#039;dh_clients_shortcode&#039;); \nfunction dh_clients_shortcode( $atts ) { \n  \n    $atts = shortcode_atts( array( \n    &#039;grupa&#039; =&gt; &#039;&#039; \n  ), $atts ); \n \n  if (!empty($atts[&#039;grupa&#039;])) { \n    $args = array(&#039;post_type&#039; =&gt; &#039;dh_clients&#039;, \n      &#039;tax_query&#039; =&gt; array( \n        array( \n          &#039;taxonomy&#039; =&gt; &#039;grupa&#039;, \n          &#039;field&#039; =&gt; &#039;slug&#039;, \n          &#039;terms&#039; =&gt; array(sanitize_title( $atts[&#039;grupa&#039;])), \n        ), \n      ), \n     ); \n    } \n  else{ \n    $args = array(&#039;post_type&#039; =&gt; &#039;klienci&#039;, \n     ); \n     \n  } <\/code><\/pre>\n<p>Wtyczka b\u0119dzie obs\u0142ugiwa\u0142a shortcode z atrybutem w postaci grupy, np. <span class=\"code-short-format\">[dh_clients grupa=&#8221;katowice&#8221;]<\/span>. Je\u017celi grupa nie zosta\u0142a wybrana i wstawisz wy\u0142\u0105cznie <span class=\"code-short-format\">[dh_clients]<\/span>, zostan\u0105 wy\u015bwietlone wszystkie elementy.<\/p>\n<p>Teraz stw\u00f3rz zapytanie (<span class=\"code-short-format\">WP_Query<\/span>) oraz p\u0119tl\u0119 generuj\u0105c\u0105 elementy do wy\u015bwietlenia:<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">} \n    $loop = new WP_Query($args); \n    $output = &#039;&lt;div class=&quot;dh-clients&quot;&gt; &lt;div class=&quot;owl-carousel&quot;&gt;&#039;; \n \n    while($loop-&gt;have_posts()) : $loop-&gt;the_post(); \n        $img = get_the_post_thumbnail_url(get_the_ID(),&#039;full&#039;); \n        $output .= &#039;&lt;div class=&quot;item&quot;&gt; &lt;img src=&quot;&#039; . \n        $img . \n            &#039;&quot;\/&gt;&lt;div class=&quot;client-name&quot;&gt;&lt;span&gt;&#039;. \n            get_the_title(). \n            &#039;&lt;\/span&gt;&lt;\/div&gt;&lt;\/div&gt;&#039;; \n        endwhile; \n \n        wp_reset_query(); \n        $output .= &#039;&lt;\/div&gt;&lt;\/div&gt;&#039;; \n        return $output; \n}<\/code><\/pre>\n<p>Teraz, tak jak poprzednio, za\u0142\u0105cz nowy plik w <span class=\"code-short-format\">clients-carousel.php<\/span>:<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">include_once( plugin_dir_path( __FILE__ ) . \n&#039;includes\/shortcode.php&#039;);<\/code><\/pre>\n<p>Po aktualizacji plik\u00f3w wtyczki na serwerze b\u0119dziesz w stanie doda\u0107 shortcode w dowolnym miejscu w panelu administracyjnym z parametrem grupy lub bez niego:<\/p>\n<p><a href=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/10.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"photo-border aligncenter wp-image-4629\" src=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/10.jpg\" alt=\"dodawanie shortcode\" width=\"800\" height=\"439\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/10.jpg 1125w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/10-300x165.jpg 300w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/10-1024x562.jpg 1024w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/10-768x421.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/11.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"photo-border aligncenter wp-image-4630\" src=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/11.jpg\" alt=\"grupy klient\u00f3w\" width=\"800\" height=\"171\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/11.jpg 1739w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/11-300x64.jpg 300w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/11-1024x218.jpg 1024w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/11-768x164.jpg 768w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/11-1536x328.jpg 1536w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/12.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"photo-border aligncenter wp-image-4631\" src=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/12.jpg\" alt=\"shortcode z grup\u0105\" width=\"800\" height=\"353\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/12.jpg 1439w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/12-300x132.jpg 300w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/12-1024x452.jpg 1024w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/12-768x339.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>Po otwarciu strony ujrzysz dodanych klient\u00f3w:<\/p>\n<p><a href=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/14.png\"><img loading=\"lazy\" decoding=\"async\" class=\"photo-border aligncenter wp-image-4632\" src=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/14.png\" alt=\"lista bez stylowania\" width=\"218\" height=\"628\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/14.png 218w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/14-104x300.png 104w\" sizes=\"auto, (max-width: 218px) 100vw, 218px\" \/><\/a><\/p>\n<p>Teraz mo\u017cesz przyst\u0105pi\u0107 do stylowania oraz utworzenia karuzeli.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Krok_5_%E2%80%93_Dodawanie_plikow_CSS\"><\/span>Krok 5 \u2013 Dodawanie plik\u00f3w CSS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Wewn\u0105trz folderu <span class=\"code-short-format\">\/public\/css<\/span> dodaj plik <span class=\"code-short-format\">style.css<\/span> i zamie\u015b\u0107 w nim poni\u017cszy kod:<\/p>\n<pre class=\"line-numbers\"><code class=\"language-css\" data-line=\"\">.client-name { \n    color: white; \n    background-color: #231F20; \n    padding: 5px 5px 5px 20px; \n} <\/code><\/pre>\n<p>Nast\u0119pnie w folderze <span class=\"code-short-format\">includes<\/span> dodaj plik <span class=\"code-short-format\">functions.php<\/span> i wykonaj w nim operacj\u0119 <span class=\"code-short-format\">wp_enqueue_style<\/span>:<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">&lt;?php \n \nfunction load_dh_clients_scripts($hook) { \n \n    wp_enqueue_style( &#039;style&#039;, plugins_url( &#039;\/klienci\/public\/css\/style.css&#039;)); \n \n} \nadd_action(&#039;wp_enqueue_scripts&#039;, &#039;load_dh_clients_scripts&#039;);<\/code><\/pre>\n<p>W p\u00f3\u017aniejszym etapie w podobny spos\u00f3b dodasz pliki JS zmieniaj\u0105c <span class=\"code-short-format\">wp_enqueue_style<\/span> na <span class=\"code-short-format\">wp_enqueue_script<\/span>. Teraz za\u0142\u0105cz plik <span class=\"code-short-format\">functions.php<\/span> w pliku g\u0142\u00f3wnym (tak jak pozosta\u0142e pliki wcze\u015bniej).<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Krok_6_%E2%80%93_Tworzenie_karuzeli\"><\/span>Krok 6 \u2013 Tworzenie karuzeli<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Do stworzenia karuzeli wykorzystam Owl Carousel 2 (rozszerzenie do jQuery na licencji MIT) oraz bibliotek\u0119 ikon Font Awesome. Dodaj plik <span class=\"code-short-format\">carousel.js<\/span> do folderu <span class=\"code-short-format\">\/public\/js<\/span> a nast\u0119pnie pozosta\u0142e pliki Owl Carousel 2.<\/p>\n<p>Teraz wewn\u0105trz pliku <span class=\"code-short-format\">carousel.js<\/span> okre\u015bl zgodnie z dokumentacj\u0105 oraz swoimi potrzebami w\u0142a\u015bciwo\u015bci karuzeli:<\/p>\n<pre class=\"line-numbers\"><code class=\"language-javascript\" data-line=\"\">$(&#039;.owl-carousel&#039;).owlCarousel({ \n      loop: true, \n      nav: true, \n      navText: [ \n        &quot;&lt;i class=&#039;fa fa-long-arrow-left&#039;&gt;&lt;\/i&gt;&quot;, \n        &quot;&lt;i class=&#039;fa fa-long-arrow-right &#039;&gt;&lt;\/i&gt;&quot; \n      ], \n      autowidth:true, \n      margin:13, \n      autoplay: false, \n      responsive: { \n        0: { \n          items: 1 \n        }, \n        600: { \n          items: 3 \n        }, \n        1000: { \n          items: 4 \n        } \n      } \n}) <\/code><\/pre>\n<p>W piku CSS mo\u017cesz na\u0142o\u017cy\u0107 dowolny styl na karuzel\u0119.<\/p>\n<p>Efekt ko\u0144cowy karuzeli z logotypami klient\u00f3w:<\/p>\n<p><a href=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/13.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"photo-border aligncenter wp-image-4633\" src=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/13.jpg\" alt=\"efekt ko\u0144cowy karuzeli\" width=\"800\" height=\"266\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/13.jpg 1069w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/13-300x100.jpg 300w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/13-1024x341.jpg 1024w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/13-768x256.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Podsumowanie\"><\/span>Podsumowanie<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Powy\u017csza wtyczka zosta\u0142a stworzona wy\u0142\u0105cznie na potrzeby tego poradnika. Mo\u017cesz j\u0105 rozszerza\u0107 o dodatkowe funkcje, np. mo\u017cliwo\u015b\u0107 zmiany liczby wy\u015bwietlanych element\u00f3w, kolorystyki czy rozmiar\u00f3w. Dobr\u0105 praktyk\u0105 by\u0142oby r\u00f3wnie\u017c dodanie folderu <span class=\"code-short-format\">languages<\/span>, co pozwoli\u0142oby u\u017cytkownikom przet\u0142umaczy\u0107 wtyczk\u0105 na dowolny j\u0119zyk, np. przez Loco Translate.<\/p>\n<p>Mam nadziej\u0119, \u017ce powy\u017cszy poradnik by\u0142 dla Ciebie dobrym wst\u0119pem do tego ogromnego tematu. Tak jak m\u00f3wi\u0142em wcze\u015bniej, najwa\u017cniejsza jest praktyka, zatem pobierz wtyczk\u0119 i do dzie\u0142a.<\/p>\n<p>Pliki wtyczki mo\u017cesz pobra\u0107 <a href=\"http:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2020\/12\/klienci.zip\">tutaj<\/a>.<\/p>\n<div class=\"author-format\">\n<div class=\"author-format-photo\"><a href=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2021\/05\/roman-lorent.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-15969 alignleft\" src=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2021\/05\/roman-lorent.jpg\" alt=\"\" width=\"207\" height=\"310\" title=\"\" srcset=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2021\/05\/roman-lorent.jpg 479w, https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2021\/05\/roman-lorent-200x300.jpg 200w\" sizes=\"auto, (max-width: 207px) 100vw, 207px\" \/><\/a><\/div>\n<div class=\"author-format-desc\">\n<h3><\/h3>\n<h3><\/h3>\n<h3><\/h3>\n<h3><\/h3>\n<h3><\/h3>\n<h3><\/h3>\n<h3><\/h3>\n<h3><span style=\"font-weight: 400;\">Autor artyku\u0142u:<\/span> Roman Lorent<\/h3>\n<p>Full Stack Web Developer &#8211; LAMP, WordPress. Application Developer &#8211; C# \/ Microsoft .NET Framework. Zajmuj\u0105cy si\u0119 tworzeniem i implementowaniem aplikacji internetowych, mobilnych, rozwi\u0105za\u0144 e-commerce. Chief Technology Officer \/ CTO digitalgrow.<\/p>\n<ul class=\"author-icons\">\n<li class=\"author-social\"><a href=\"https:\/\/www.linkedin.com\/in\/roman-lorent\/\" target=\"_blank\" rel=\"noopener\">LinkedIn<\/a><\/li>\n<li class=\"author-social\"><a href=\"https:\/\/digitalgrow.pl\" target=\"_blank\" rel=\"noopener\"><i class=\"fas fa-link\"><\/i> Strona WWW<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Wtyczka do WordPressa to nic innego jak fragment kodu, kt\u00f3rego g\u0142\u00f3wnym zadaniem jest rozszerzenie podstawowych funkcji aplikacji. W wi\u0119kszo\u015bci paneli administracyjnych funkcjonuje koncepcja modu\u0142\u00f3w, kt\u00f3re stanowi\u0105 swego rodzaju osobne organizmy implementuj\u0105ce w\u0142asne procedury, klasy, metody, interfejsy czy funkcje. W tym przypadku kluczowe jest s\u0142owo \u201eosobne\u201d, poniewa\u017c wtyczki s\u0105 niezale\u017cne i wymienne. Mo\u017cna je w\u0142\u0105cza\u0107 oraz [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":5211,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[631,632],"class_list":["post-4962","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fachowe-poradniki","tag-wordpress","tag-wtyczka"],"_links":{"self":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/posts\/4962","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/comments?post=4962"}],"version-history":[{"count":2,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/posts\/4962\/revisions"}],"predecessor-version":[{"id":15974,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/posts\/4962\/revisions\/15974"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media\/5211"}],"wp:attachment":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media?parent=4962"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/categories?post=4962"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/tags?post=4962"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}