{"id":233337,"date":"2023-02-11T20:37:00","date_gmt":"2023-02-11T17:37:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233337"},"modified":"2022-11-10T20:33:29","modified_gmt":"2022-11-10T17:33:29","slug":"samouczek-motywu-wordpress-dla-poczatkujacych-czesc-5-dostep-do-informacji-o-wpisie","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/samouczek-motywu-wordpress-dla-poczatkujacych-czesc-5-dostep-do-informacji-o-wpisie\/","title":{"rendered":"Samouczek motywu WordPress dla pocz\u0105tkuj\u0105cych \u2013 Cz\u0119\u015b\u0107 5: Dost\u0119p do informacji o wpisie"},"content":{"rendered":"\n<p>Ta lekcja samouczka motywu WordPress dla pocz\u0105tkuj\u0105cych b\u0119dzie dotyczy\u0107 tego, jak mo\u017cemy uzyska\u0107 dost\u0119p do informacji, takich jak link, tytu\u0142 i inne, z ka\u017cdego postu, gdy znajduje si\u0119 w p\u0119tli post\u00f3w. Robimy to za pomoc\u0105 tag\u00f3w szablon\u00f3w. W procesie dodamy r\u00f3wnie\u017c szablony pojedynczego widoku do naszego motywu.<\/p>\n<p>W <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-4-accessing-posts-with-the-loop\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">poprzednim kroku<\/a> dodali\u015bmy p\u0119tl\u0119 post zawieraj\u0105c\u0105 <code>the_post()<\/code>funkcj\u0119. Ta funkcja konfiguruje zmienne globalne i upewnia si\u0119, \u017ce mo\u017cemy u\u017cywa\u0107 prostych i intuicyjnych wywo\u0142a\u0144 funkcji, zwanych <a href=\"https:\/\/codex.wordpress.org\/Template_Tags\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tagami szablon\u00f3w<\/a>, gdy jeste\u015bmy wewn\u0105trz <code>while<\/code>p\u0119tli.<\/p>\n<h2>Najpopularniejsze tagi szablon\u00f3w do u\u017cytku w p\u0119tli post<\/h2>\n<p>Oto lista najpopularniejszych tag\u00f3w szablon\u00f3w, kt\u00f3rych chcesz u\u017cy\u0107, aby uzyska\u0107 dost\u0119p do informacji o po\u015bcie:<\/p>\n<ul>\n<li><code>the_title()<\/code>odzwierciedla tytu\u0142 posta.<\/li>\n<li><code>the_permalink()<\/code>wy\u015bwietla permalink\/URL posta.<\/li>\n<li><code>the_content()<\/code>wy\u015bwietla tre\u015b\u0107 posta (z edytora)<\/li>\n<li><code>the_excerpt()<\/code>odbija si\u0119 echem fragment postu. Je\u015bli pole fragmentu jest puste, spowoduje to wy\u015bwietlenie pierwszych 55 s\u0142\u00f3w z tre\u015bci postu wraz z \u201e\u2026&quot;<\/li>\n<li><code>the_ID()<\/code>wy\u015bwietla identyfikator posta.<\/li>\n<li><code>the_category()<\/code>wy\u015bwietla wszystkie powi\u0105zane kategorie.<\/li>\n<li><code>the_tags()<\/code>wyprowadza wszystkie powi\u0105zane tagi.<\/li>\n<li><code>the_date()<\/code>odzwierciedla dat\u0119 opublikowania posta.<\/li>\n<li><code>the_time()<\/code>wy\u015bwietla czas publikacji posta.<\/li>\n<li><code>the_author()<\/code>wy\u015bwietla wy\u015bwietlan\u0105 nazw\u0119 autora posta<\/li>\n<li><code>the_post_thumbnail()<\/code>wy\u015bwietla wyr\u00f3\u017cniony obraz posta. W dalszej cz\u0119\u015bci tego samouczka dowiemy si\u0119, jak doda\u0107 obs\u0142ug\u0119 polecanych miniatur.<\/li>\n<\/ul>\n<p>Jest ich znacznie wi\u0119cej. Je\u015bli jeste\u015b zainteresowany, sp\u00f3jrz na <a href=\"https:\/\/codex.wordpress.org\/Template_Tags\/#Post_tags\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentacj\u0119 WordPress Codex wszystkich tag\u00f3w post\u00f3w<\/a>. Sp\u00f3jrz poza nag\u0142\u00f3wek \u201etag\u00f3w post\u00f3w&#8221;, aby uzyska\u0107 wi\u0119cej informacji \u2013 s\u0105 one nieco rozrzucone na tej stronie.<\/p>\n<p>Zacznijmy implementowa\u0107 niekt\u00f3re z tych tag\u00f3w w naszym <code>index.php<\/code>. Dodam r\u00f3wnie\u017c bardzo podstawowy kod HTML, aby lepiej sformatowa\u0107 wyj\u015bcie. Zach\u0119cam do dodania w\u0142asnego kodu HTML! Dodawaj elementy div, span, sekcje, nag\u0142\u00f3wki itd. z dowolnymi klasami.<\/p>\n<h2>Uciele\u015bnienie p\u0119tli w index.php<\/h2>\n<p>Wewn\u0105trz p\u0119tli w naszym <code>index.php<\/code>chcia\u0142bym doda\u0107 link, kt\u00f3ry prowadzi do permalinka posta. Wewn\u0105trz linku chcia\u0142bym powt\u00f3rzy\u0107 tytu\u0142 posta. Nast\u0119pnie chcia\u0142bym r\u00f3wnie\u017c przywo\u0142a\u0107 fragment postu i jego kategorie.<\/p>\n<pre><code>&lt;?php get_header(); ?&gt;\n&lt;?php \nif (have_posts()) {\n    while (have_posts()): the_post();\n        &lt;article &lt;?php post_class(); ?&gt;&gt;\n            &lt;h2&gt;\n                &lt;a href=\"&lt;?php the_permalink(); ?&gt;\" title=\"&lt;?php the_title(); ?&gt;\"&gt;&lt;?php the_title(); ?&gt;&lt;\/a&gt;\n            &lt;\/h2&gt;\n            &lt;?php the_excerpt(); ?&gt;\n            &lt;?php the_category(); ?&gt;\n        &lt;\/article&gt;\n    endwhile;\n    the_posts_pagination();\n} else {\n    ?&gt;&lt;p&gt;No posts, sorry.&lt;\/p&gt;&lt;?php\n}\n?&gt;\n&lt;?php get_sidebar(); ?&gt;\n&lt;?php get_footer(); ?&gt;<\/code><\/pre>\n<p>To, co robi powy\u017cszy kod, to;<\/p>\n<ul>\n<li>Linia #5 dodaje <code>&lt;article&gt;<\/code>tag HTML z wywo\u0142aniem, <code>post_class()<\/code>kt\u00f3re generuje przydatne klasy post\u00f3w \u2013 tak jak <code>body_class()<\/code>w <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-3-dynamic-content\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">poprzednim kroku<\/a>.<\/li>\n<li>W linii #6-8 dodajemy <code>&lt;h2&gt;<\/code>tag tytu\u0142u z linkiem prowadz\u0105cym do permalinka posta (widok pojedynczy).<\/li>\n<li>Linia nr 9 jest echem fragmentu posta.<\/li>\n<li>W wierszu nr 10 powtarzamy kategorie posta. Poniewa\u017c do tego wywo\u0142ania nie przekazuj\u0119 \u017cadnych argument\u00f3w, domy\u015blnie jest to <code>&lt;ul&gt;<\/code>lista.<\/li>\n<\/ul>\n<p>Skutkuje to nast\u0119puj\u0105cymi danymi wyj\u015bciowymi podczas od\u015bwie\u017cania strony g\u0142\u00f3wnej:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153917-61e51609c0d16.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-153917-61e51609c0d16.png\" alt=\"Samouczek motywu WordPress dla pocz\u0105tkuj\u0105cych \u2013 Cz\u0119\u015b\u0107 5: Dost\u0119p do informacji o wpisie\" ><\/a><\/p>\n<p>Dok\u0105d\u015b zmierzamy! Zach\u0119cam do zapoznania si\u0119 z dokumentacj\u0105 poszczeg\u00f3lnych funkcji tag\u00f3w, dla kt\u00f3rych parametr\u00f3w akceptuj\u0105. Mo\u017cesz troch\u0119 zmodyfikowa\u0107 dane wyj\u015bciowe! I sam zdecyduj, kt\u00f3rych tag\u00f3w szablonu u\u017cy\u0107.<\/p>\n<p>Spr\u00f3buj klikn\u0105\u0107 link do posta i zobacz, \u017ce dotar\u0142e\u015b do tej strony z pojedynczym postem. Mo\u017cesz teraz zobaczy\u0107, \u017ce p\u0119tla pokazuje tylko ten jeden post. Poniewa\u017c jednak obecnie mamy tylko jeden szablon <code>index.php<\/code>, pojedynczy widok r\u00f3wnie\u017c korzysta z tego szablonu. Tak wi\u0119c pojedynczy widok nie ma wi\u0119kszego sensu. Nie potrzebujemy linku do samego siebie i chcemy zobaczy\u0107 pe\u0142n\u0105 tre\u015b\u0107 posta! Naprawmy to, tworz\u0105c nasz drugi szablon w naszym motywie.<\/p>\n<h2>Tworzenie szablon\u00f3w pojedynczego widoku<\/h2>\n<p>Je\u015bli pami\u0119tasz w <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-1-introduction\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">lekcji 1<\/a> samouczka motywu WordPress dla pocz\u0105tkuj\u0105cych, przyjrzeli\u015bmy si\u0119 hierarchii szablon\u00f3w? Kiedy jeste\u015bmy na pojedynczym po\u015bcie lub stronie, WordPress szuka <code>single.php<\/code>post\u00f3w i <code>page.php<\/code>stron. Je\u015bli jeden z nich nie zostanie znaleziony, WordPress powraca do tego, <code>singular.php<\/code>kt\u00f3ry jest udost\u0119pniany niezale\u017cnie od typu postu. Jednak motywy generalnie wdra\u017caj\u0105 <code>single.php<\/code>i <code>page.php<\/code>ze wzgl\u0119du na r\u00f3\u017cnice mi\u0119dzy postami i stronami. Strony nie maj\u0105 kategorii i tag\u00f3w, a poniewa\u017c strony s\u0105 zwykle u\u017cywane do tre\u015bci statycznych, zwykle nie pokazuj\u0105 daty publikacji ani komentarzy. To zale\u017cy wy\u0142\u0105cznie od Ciebie.<\/p>\n<p>Stworzymy <code>single.php<\/code>i <code>page.php<\/code>dla naszego tematu. Zacznijmy od post\u00f3w.<\/p>\n<h3>Szablon pojedynczego posta<\/h3>\n<p>W folderze motywu utw\u00f3rz kopi\u0119 <code>index.php<\/code>i zmie\u0144 jej nazw\u0119 na <code>single.php<\/code>. W <code>single.php<\/code>tym miejscu usuniemy permalink (kt\u00f3ry prowadzi do samego siebie) i zamienimy fragment na pe\u0142n\u0105 tre\u015b\u0107 posta. I na koniec nie potrzebujemy tutaj nawigacji do archiwum.<\/p>\n<pre><code>&lt;?php get_header(); ?&gt;\n&lt;?php \nif (have_posts()) {\n    while (have_posts()): the_post();\n        &lt;article &lt;?php post_class(); ?&gt;&gt;\n            &lt;h2&gt;&lt;php the_title(); ?&gt;&lt;\/h2&gt;\n            &lt;?php the_content(); ?&gt;\n            &lt;?php the_category(); ?&gt;\n        &lt;\/article&gt;\n    endwhile;\n} else {\n    ?&gt;&lt;p&gt;No posts, sorry.&lt;\/p&gt;&lt;?php\n}\n?&gt;\n&lt;?php get_sidebar(); ?&gt;\n&lt;?php get_footer(); ?&gt;<\/code><\/pre>\n<p>Dodajmy wi\u0119cej przydatnych informacji; takie jak data postu i nazwisko autora. Ponownie zach\u0119cam do dodania znacznik\u00f3w HTML, aby stworzy\u0107 znacznie \u0142adniejsz\u0105 struktur\u0119 HTML.<\/p>\n<pre><code>&lt;?php get_header(); ?&gt;\n&lt;?php \nif (have_posts()) {\n    while (have_posts()): the_post();\n        &lt;article &lt;?php post_class(); ?&gt;&gt;\n            &lt;h2&gt;&lt;php the_title(); ?&gt;&lt;\/h2&gt;\n            &lt;?php the_content(); ?&gt;\n            &lt;?php the_category(); ?&gt;\n            &lt;p&gt;Posted: &lt;?php the_date(); ?&gt; at &lt;?php the_time(); ?&gt;&lt;\/p&gt;\n            &lt;p&gt;Author: &lt;?php the_author(); ?&gt;&lt;\/p&gt;\n        &lt;\/article&gt;\n    endwhile;\n} else {\n    ?&gt;&lt;p&gt;No posts, sorry.&lt;\/p&gt;&lt;?php\n}\n?&gt;\n&lt;?php get_sidebar(); ?&gt;\n&lt;?php get_footer(); ?&gt;<\/code><\/pre>\n<p>Funkcje <code>the_time()<\/code>i <code>the_date()<\/code>b\u0119d\u0105 wy\u015bwietla\u0107 dat\u0119 i godzin\u0119 w formacie zdefiniowanym w panelu administracyjnym &gt; Ustawienia. Mo\u017cna to jednak zast\u0105pi\u0107, podaj\u0105c inny format daty jako parametr dla tych metod.<\/p>\n<p>Funkcja <code>the_author()<\/code>odzwierciedla \u201ewy\u015bwietlan\u0105 nazw\u0119&#8221; autora. Je\u015bli u\u017cytkownik nie poda\u0142 \u017cadnej innej nazwy w swoim profilu, spowoduje to wy\u015bwietlenie nazwy u\u017cytkownika.<\/p>\n<p>Gor\u0105co <strong>zach\u0119cam<\/strong>, aby nigdy nie drukowa\u0107 nazw u\u017cytkownik\u00f3w, poniewa\u017c mo\u017ce to stanowi\u0107 zagro\u017cenie dla bezpiecze\u0144stwa. Zawsze upewnij si\u0119, \u017ce autorzy podali prawid\u0142ow\u0105 nazw\u0119 lub nie u\u017cywaj <code>the_author()<\/code>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153917-61e5160aa02dd.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-153917-61e5160aa02dd.png\" alt=\"Samouczek motywu WordPress dla pocz\u0105tkuj\u0105cych \u2013 Cz\u0119\u015b\u0107 5: Dost\u0119p do informacji o wpisie\" ><\/a><\/p>\n<p>Tak wygl\u0105da teraz dla mnie jeden post. Wspania\u0142y! Zr\u00f3bmy szablon pojedynczej strony.<\/p>\n<h3>Szablon pojedynczej strony<\/h3>\n<p>Zr\u00f3b kopi\u0119 swojego <code>single.php<\/code>i zmie\u0144 jego nazw\u0119 na <code>page.php<\/code>. Wszystko, co zrobi\u0142em, <code>page.php<\/code>to usuni\u0119cie wszystkiego, co nie dotyczy stron. Echowanie kategorii dla stron nie zadzia\u0142a, a tak\u017ce usun\u0105\u0142em dat\u0119, godzin\u0119 i autora. Oto, co dostajemy <code>page.php<\/code>:<\/p>\n<pre><code>&lt;?php get_header(); ?&gt;\n&lt;?php \nif (have_posts()) {\n    while (have_posts()): the_post();\n        &lt;article &lt;?php post_class(); ?&gt;&gt;\n            &lt;h2&gt;&lt;php the_title(); ?&gt;&lt;\/h2&gt;\n            &lt;?php the_content(); ?&gt;\n        &lt;\/article&gt;\n    endwhile;\n} else {\n    ?&gt;&lt;p&gt;No posts, sorry.&lt;\/p&gt;&lt;?php\n}\n?&gt;\n&lt;?php get_sidebar(); ?&gt;\n&lt;?php get_footer(); ?&gt;<\/code><\/pre>\n<p>W ko\u0144cu zaczynamy co\u015b robi\u0107 z naszymi szablonami! Jednak nie mog\u0119 tego wystarczaj\u0105co powt\u00f3rzy\u0107; Zach\u0119cam do modyfikowania szablon\u00f3w i parametr\u00f3w do funkcji wed\u0142ug w\u0142asnych upodoba\u0144. Zw\u0142aszcza dodanie wi\u0119kszej liczby opakowa\u0144 HTML, aby u\u0142atwi\u0107 p\u00f3\u017aniej stylizacj\u0119.<\/p>\n<p>W nast\u0119pnym kroku odchodzimy troch\u0119 od szablon\u00f3w i zajmujemy si\u0119 bardziej backendowym kodowaniem motyw\u00f3w WordPress.<\/p>\n<h2>Dokumentacja dotycz\u0105ca zastosowanych metod<\/h2>\n<ul>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/post_class\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">post_class<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_permalink\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">the_permalink<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_title\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tytu\u0142<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_excerpt\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">the_fragment<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_category\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Kategoria<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_content\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Zawarto\u015b\u0107<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_date\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">data_<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_time\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">czas<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_author\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Autor<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ta lekcja b\u0119dzie dotyczy\u0142a tego, w jaki spos\u00f3b mo\u017cemy uzyska\u0107 dost\u0119p do informacji z ka\u017cdego postu i wyprowadzi\u0107 je, gdy znajdujemy si\u0119 w p\u0119tli WordPress za pomoc\u0105 tag\u00f3w szablon\u00f3w.<\/p>\n","protected":false},"author":1,"featured_media":223885,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[897,897,1110,805,805,836,836,845,929,929,845,866,866],"tags":[1169],"class_list":{"0":"post-233337","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-kod","9":"category-n-a","10":"category-php-7","12":"category-przewodnik-dla-poczatkujacych","14":"category-samouczki","15":"category-tematy","18":"category-wordpress-7","20":"tag-affiai-pl"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/233337","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=233337"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/233337\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/223885"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=233337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=233337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=233337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}