{"id":225899,"date":"2022-08-16T13:27:00","date_gmt":"2022-08-16T10:27:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=225899"},"modified":"2022-11-08T19:55:46","modified_gmt":"2022-11-08T16:55:46","slug":"petla-wordpress-co-to-jest-i-co-musisz-o-niej-wiedziec","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/petla-wordpress-co-to-jest-i-co-musisz-o-niej-wiedziec\/","title":{"rendered":"P\u0119tla WordPress: co to jest i co musisz o niej wiedzie\u0107"},"content":{"rendered":"<p>Je\u015bli jeste\u015b programist\u0105 WordPress, programist\u0105 lub po prostu entuzjast\u0105 chc\u0105cym dowiedzie\u0107 si\u0119, czym jest p\u0119tla WordPress, ten artyku\u0142 jest dla Ciebie! Bez dalszych ceregieli zacznijmy od podstaw: Co to jest p\u0119tla?<\/p>\n<p>P\u0119tla WordPress to kod PHP, kt\u00f3ry pokazuje posty WordPress lub po prostu umieszcza; jest u\u017cywany w r\u00f3\u017cnych motywach do wy\u015bwietlania post\u00f3w na dowolnej stronie internetowej. Nie tylko dzia\u0142a na wi\u0119kszo\u015bci stron, kt\u00f3re widzisz, ale tak\u017ce pozwala modyfikowa\u0107 i dostosowywa\u0107 go do w\u0142asnych upodoba\u0144.<\/p>\n<p>Te p\u0119tle witryny mog\u0105 by\u0107 u\u017cywane do wy\u015bwietlania post\u00f3w wed\u0142ug liczby komentarzy, wy\u015bwietlania post\u00f3w z obrazami i tak dalej.<\/p>\n<p>Kiedy spojrzysz na p\u0119tl\u0119, zobaczysz, \u017ce niekt\u00f3re funkcje dzia\u0142aj\u0105 domy\u015blnie, aby wy\u015bwietla\u0107 posty. Tw\u00f3rcy motyw\u00f3w mog\u0105 u\u017cywa\u0107 tych funkcji i znacznik\u00f3w szablon\u00f3w, aby dostosowa\u0107 spos\u00f3b wy\u015bwietlania ka\u017cdego posta w p\u0119tli.<\/p>\n<p>Te tagi szablon\u00f3w dzia\u0142aj\u0105 tylko w domy\u015blnej p\u0119tli WordPressa i s\u0142u\u017c\u0105 do formatowania, porz\u0105dkowania i publikowania danych post\u00f3w.<\/p>\n<p>P\u0119tla WordPress jest bez w\u0105tpienia najwa\u017cniejsz\u0105 cz\u0119\u015bci\u0105 kodu WordPress i pozw\u00f3l nam zag\u0142\u0119bi\u0107 si\u0119 w p\u0119tle Twojej witryny.<\/p>\n<h3>P\u0119tla strony WordPress dla pocz\u0105tkuj\u0105cych<\/h3>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-207555-61e8d679e5a30.jpg\" 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-207555-61e8d679e5a30.jpg\" alt=\"P\u0119tla WordPress: co to jest i co musisz o niej wiedzie\u0107\" ><\/a><\/p>\n<p>Jak ju\u017c wspomnieli\u015bmy, p\u0119tla post\u00f3w to kod, kt\u00f3ry wy\u015bwietla wszystkie informacje, kt\u00f3re WordPress ma o po\u015bcie lub postach. Dzia\u0142a w tle przez ka\u017cdy post i odnajduje baz\u0119 danych jeden po drugim, co pozwala mu dostarczy\u0107 informacje o wszystkich znalezionych postach.<\/p>\n<p>Oto przyk\u0142ad dzia\u0142ania p\u0119tli WordPress poprzez posty:<\/p>\n<ol>\n<li>zaczynasz p\u0119tl\u0119,<\/li>\n<li>podejmowa\u0107 dzia\u0142ania z ka\u017cdym znalezionym postem lub stron\u0105,<\/li>\n<li>zamkn\u0105\u0107 p\u0119tl\u0119.<\/li>\n<\/ol>\n<p>Te trzy kroki reprezentuj\u0105 podstawow\u0105 logik\u0119 p\u0119tli. Od tego momentu mo\u017cesz wykaza\u0107 si\u0119 kreatywno\u015bci\u0105 i filtrowa\u0107 znalezione posty za pomoc\u0105 zapytania. Zapytanie m\u00f3wi p\u0119tli, czego szukamy. W naszym przyk\u0142adzie wygl\u0105da\u0142oby to tak:<\/p>\n<ol>\n<li>okre\u015bli\u0107 czego szukamy,<\/li>\n<li>uruchom p\u0119tl\u0119,<\/li>\n<li>podejmuj dzia\u0142ania z ka\u017cdym znalezionym postem lub stron\u0105,<\/li>\n<li>zamkn\u0105\u0107 p\u0119tl\u0119.<\/li>\n<\/ol>\n<p>Je\u015bli masz do\u015bwiadczenie z kodem PHP, mo\u017cesz zna\u0107 funkcj\u0119 \u201ewhile&quot;, kt\u00f3ra jest u\u017cywana w p\u0119tlach do wykonywania zapyta\u0144 do bazy danych i dynamicznego wy\u015bwietlania informacji bez konieczno\u015bci r\u0119cznego wprowadzania ka\u017cdego wiersza bazy danych.<\/p>\n<p>P\u0119tla while WordPressa dzia\u0142a w ten sam spos\u00f3b.<\/p>\n<h3>Przyk\u0142ad standardowej p\u0119tli WordPress<\/h3>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-207555-61e8d67ad790d.jpg\" 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-207555-61e8d67ad790d.jpg\" alt=\"P\u0119tla WordPress: co to jest i co musisz o niej wiedzie\u0107\" ><\/a><\/p>\n<p>Poni\u017cej znajduje si\u0119 przyk\u0142ad standardowej p\u0119tli WordPress, kt\u00f3rej mo\u017cna u\u017cy\u0107 na dowolnej stronie.<\/p>\n<p><code>&lt;?php if (have_posts() ): ?&gt; &lt;?php while (have_posts() ): the_post() ?&gt; \/\/ Post display here &lt;?php endwhile ?&gt; &lt;?php else: ?&gt; \/\/ Content if there are no posts to show &lt;?php endif ?&gt;<\/code><\/p>\n<p>Sp\u00f3jrz na funkcje have_posts() i the_post(). Pierwszy z nich okre\u015bla, czy s\u0105 jakie\u015b posty do wy\u015bwietlenia, a drugi ustawia dane i wewn\u0119trzne punkty, kt\u00f3re pomagaj\u0105 funkcji have_posts().<\/p>\n<p>Je\u015bli nie ma nic do wy\u015bwietlenia, funkcja powinna wy\u015bwietli\u0107 komunikat informuj\u0105cy u\u017cytkownik\u00f3w.<\/p>\n<p>Je\u015bli s\u0105 posty, kt\u00f3rych szukamy, p\u0119tla wy\u015bwietli je jeden po drugim.<\/p>\n<p>Tutaj masz blok kodu, kt\u00f3ry faktycznie poka\u017ce posty, to na nas!<\/p>\n<p>`&lt;?php if (have_posts() ): ?&gt;<br \/>\n&lt;?php while (have_posts() ): the_post() ?&gt;<br \/>\n&lt;div &lt;?php post_class() ?&gt;&gt;<\/p>\n<h2>&lt;a href=&#8221;&gt;<\/h2>\n<p>&lt;div class=&#8217;post-excerpt&#8217;&gt;<br \/>\n&lt;?php the_excerpt() ?&gt;<\/p>\n<p>&lt;div class=&#8217;post-meta&#8217;&gt;<br \/>\n&lt;?php the_time( 'Ym-d&#8217;) ?&gt;<br \/>\n&lt;?php if (has_category() ): ?&gt;<br \/>\n&lt;span class=&#8217;post-categories&#8217;&gt;&lt;?php the_category( &#8217;, &#8217;) ?&gt;<br \/>\n&lt;?php endif ?&gt;<\/p>\n<p>&lt;?php endwhile ?&gt;<br \/>\n&lt;?php jeszcze: ?&gt;<\/p>\n<h2>Nie ma tu \u017cadnych post\u00f3w<\/h2>\n<p>Czy chcesz wr\u00f3ci\u0107 do &lt;a href=&#8221;&gt;strony g\u0142\u00f3wnej?<br \/>\n`<\/p>\n<p>Wy\u015bwietlana tutaj tre\u015b\u0107 jest okre\u015blona przez zapytanie, o kt\u00f3rym ju\u017c m\u00f3wili\u015bmy, a spos\u00f3b wy\u015bwietlania tej tre\u015bci zale\u017cy od p\u0119tli. Ta ilo\u015b\u0107 dostosowania jest niesamowita i to w\u0142a\u015bnie wyr\u00f3\u017cnia WordPress.<\/p>\n<p>Dobra robota! Teraz wiesz, co to jest p\u0119tla post\u00f3w!<\/p>\n<p>### U\u017cywanie kodu do zmiany g\u0142\u00f3wnego zapytania<\/p>\n<p>!<a href=\"https:\/\/wpdatatables.com\/wp-content\/uploads\/2018\/04\/wploop-2.jpg\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><\/p>\n<p>Zanim zaczniemy, musimy Ci\u0119 ostrzec, \u017ce zmiana g\u0142\u00f3wnego zapytania mo\u017ce mie\u0107 niezamierzone konsekwencje, je\u015bli nie wiesz, co robisz. Zachowaj ostro\u017cno\u015b\u0107 podczas eksperymentowania!<\/p>\n<p>Musimy przyjrze\u0107 si\u0119 haczykom, je\u015bli chcemy zmodyfikowa\u0107 podstawow\u0105 funkcjonalno\u015b\u0107. Hooki umo\u017cliwiaj\u0105 nam zmian\u0119 d\u0142ugo\u015bci tekstu, zmian\u0119 ekranu logowania, przeformu\u0142owanie komunikat\u00f3w o b\u0142\u0119dach, zmian\u0119 niestandardowych typ\u00f3w post\u00f3w i wiele wi\u0119cej.<\/p>\n<p><code>add_action( 'pre_get_posts', 'my_exclude_category' ); function my_exclude_category( $zapytanie) { if ($zapytanie-&gt;is_home() &amp;&amp; $zapytanie-&gt;is_main_query()) { $zapytanie-&gt;set( 'kot', '-92' ); } }<\/code><\/p>\n<p>Zauwa\u017c, \u017ce u\u017cywamy przechwycenia pre_get_post, aby zmodyfikowa\u0107 parametr g\u0142\u00f3wnego zapytania przed jego uruchomieniem. Powy\u017cszy kod robi to samo, co poprzedni, ale tym razem wyklucza kategori\u0119 92 z naszej strony g\u0142\u00f3wnej. W zwi\u0105zku z tym g\u0142\u00f3wne zapytanie jest modyfikowane<\/p>\n<p>Sp\u00f3jrz na funkcje is_home() i is_main_query(). S\u0105 tutaj, aby upewni\u0107 si\u0119, \u017ce zapytanie jest modyfikowane tylko na stronie g\u0142\u00f3wnej i czy jest to zapytanie g\u0142\u00f3wne.<\/p>\n<p>Oto kolejny kod, kt\u00f3ry mo\u017ce by\u0107 przydatny w p\u0119tli bloga WordPress.<\/p>\n<p>Za\u0142\u00f3\u017cmy, \u017ce autor w Twojej witrynie dokona\u0142 plagiatu niekt\u00f3rych (lub wszystkich) swoich tre\u015bci i chcesz usun\u0105\u0107 wszystkie jego posty na sta\u0142e lub do czasu rozwi\u0105zania problemu.<\/p>\n<p>Mo\u017cna to zrobi\u0107, dodaj\u0105c taki kod:<\/p>\n<p><code>add_action( 'pre_get_posts', 'm\u00f3j_wykluczony_autor' ); function my_exclude_author( $zapytanie) { $zapytanie-&gt;set( 'autor', '-23' ); }<\/code><\/p>\n<p>Dzi\u0119ki tej warunkowej funkcji usuwasz post autora zar\u00f3wno ze swojej witryny, jak i zaplecza. Wszystkie tagi warunkowe mo\u017cna znale\u017a\u0107 w Kodeksie WordPressa. Oto jak na ko\u0144cu powinien wygl\u0105da\u0107 ostatni kod:<\/p>\n<p><code>add_action( 'pre_get_posts', 'm\u00f3j_wykluczony_autor' ); function my_exclude_author( $zapytanie) { if( !is_admin()) { $zapytanie-&gt;set( 'autor', '-23' ); } }<\/code><\/p>\n<p>### Ko\u0144cowe przemy\u015blenia na temat p\u0119tli WordPress<\/p>\n<p>Korzystanie z p\u0119tli WordPress to \u015bwietny spos\u00f3b na dostosowanie swoich post\u00f3w, stron lub po prostu &#8211; Twojej witryny. P\u0119tla wymaga podstawowej wiedzy na temat dzia\u0142ania WordPressa i logiki kodu.<\/p>\n<p>Je\u015bli nie chcesz wykona\u0107 szybkiego testu, nie zalecamy u\u017cywania funkcji query_posts(). Mo\u017cesz u\u017cy\u0107 r\u00f3\u017cnych hak\u00f3w, je\u015bli chcesz zmodyfikowa\u0107 oryginalne zapytanie. Zawsze b\u0105d\u017a ostro\u017cny podczas zmiany kodu p\u0119tli WordPress.<\/p>\n<p>Mamy nadziej\u0119, \u017ce ten artyku\u0142 by\u0142 dobrym pierwszym krokiem do opanowania p\u0119tli WordPressa!<\/p>\n<p>Je\u015bli podoba\u0142 Ci si\u0119 ten artyku\u0142 o p\u0119tli WordPress, powiniene\u015b r\u00f3wnie\u017c przeczyta\u0107 te:<\/p>\n<p>\u2013 <a href=\"https:\/\/wordpress.mediadoma.com\/pl\/blad-504-w-wordpress-jak-to-naprawic\/\" title=\"B\u0142\u0105d 504 w WordPressie: jak go naprawi\u0107\">B\u0142\u0105d 504 w WordPressie: jak go naprawi\u0107<\/a><br \/>\n\u2013 <a href=\"https:\/\/wordpress.mediadoma.com\/pl\/12-wskazowek-dotyczacych-tworzenia-udanego-motywu-lub-wtyczki-wordpress\/\" title=\"12 wskaz\u00f3wek dotycz\u0105cych tworzenia udanej wtyczki WordPress Premium lub Motyw\">12 wskaz\u00f3wek dotycz\u0105cych tworzenia udanej wtyczki WordPress Premium lub Motyw<\/a><br \/>\n\u2013 <a href=\"https:\/\/wordpress.mediadoma.com\/pl\/jak-wykorzystac-buforowanie-przegladarki-w-wordpress\/\" title=\"Jak wykorzysta\u0107 buforowanie przegl\u0105darki w WordPressie? Kroki do na\u015bladowania\">Jak wykorzysta\u0107 buforowanie przegl\u0105darki w WordPressie? Kroki do na\u015bladowania<\/a><\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wpdatatables.com\" class=\"external external_icon\">wpdatatables.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Je\u015bli jeste\u015b programist\u0105 WordPress, programist\u0105 lub po prostu entuzjast\u0105 chc\u0105cym dowiedzie\u0107 si\u0119, czym jest p\u0119tla WordPress, ten artyku\u0142 jest dla Ciebie!<\/p>\n","protected":false},"author":1,"featured_media":207556,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[805,866],"tags":[1169],"class_list":["post-225899","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-7","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/225899","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=225899"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/225899\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/207556"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=225899"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=225899"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=225899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}