{"id":233001,"date":"2023-02-02T15:44:00","date_gmt":"2023-02-02T12:44:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233001"},"modified":"2022-11-10T18:43:15","modified_gmt":"2022-11-10T15:43:15","slug":"jak-utworzyc-strone-archiwow-podsumowanie-dla-wszystkich-postow-stron-wordpress-za-pomoca-php","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/jak-utworzyc-strone-archiwow-podsumowanie-dla-wszystkich-postow-stron-wordpress-za-pomoca-php\/","title":{"rendered":"Jak utworzy\u0107 stron\u0119 archiw\u00f3w (podsumowanie) dla wszystkich post\u00f3w\/stron WordPress za pomoc\u0105 PHP?"},"content":{"rendered":"\n<p>W\u0142a\u015bnie stworzy\u0142em dwie strony podsumowa\u0144 dla moich dw\u00f3ch blog\u00f3w: <a href=\"https:\/\/helloacm.com\/archives-of-pagesposts\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/helloacm.com\/archives-of-pagesposts\/<\/a> i <a href=\"https:\/\/www.codingforspeed.com\/archives-of-pagesposts\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">http:\/\/www.codingforspeed.com\/archives-of-pagesposts\/<\/a>.<\/p>\n<p>Na obu stronach wszystkie artyku\u0142y (w tym strony) s\u0105 sortowane wed\u0142ug miesi\u0119cy. Liczba komentarzy do ka\u017cdego postu zostanie policzona i wydrukowana po tytule posta w nawiasach.<\/p>\n<p>Mo\u017ce to by\u0107 dobre, aby wy\u015bwietli\u0107 wszystkie artyku\u0142y\/strony dla u\u017cytkownik\u00f3w i wyszukiwarek, wi\u0119c ta strona s\u0142u\u017cy r\u00f3wnie\u017c jako mapa witryny.<\/p>\n<p>Jak wida\u0107 na stronie podsumowania, najpierw drukuje ca\u0142kowit\u0105 liczb\u0119 post\u00f3w\/stron, a dla ka\u017cdego miesi\u0105ca (tylko je\u015bli w danym miesi\u0105cu jest opublikowany przynajmniej post\/strona) wygeneruje wci\u0119te linki.<\/p>\n<p>Jak wi\u0119c zamierzamy to osi\u0105gn\u0105\u0107? Po pierwsze, w WordPressie potrzebujesz wtyczek, aby m\u00f3c do\u0142\u0105czy\u0107 kod PHP do post\u00f3w\/stron. Po zalogowaniu przejd\u017a do panelu sterowania wordpress i przejd\u017a do Wtyczek i \u201eDodaj nowy&quot;. Wyszukaj 'Do\u0142\u0105cz PHP&#8217;, a znajdziesz wiele opcji.<\/p>\n<p>Nast\u0119pnie skopiuj i wklej nast\u0119puj\u0105cy kod PHP do pojedynczego pliku PHP w katalogu g\u0142\u00f3wnym motywu.<\/p>\n<pre><code>\/\/ &lt;a class=\"vglnk\" target=\"_blank\" href=\"http:\/\/helloacm.com\" rel=\"nofollow\"&gt;&lt;span&gt;helloacm&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;com&lt;\/span&gt;&lt;\/a&gt;\n\u00a0 global $wpdb;\n\u00a0 $query = \"select count(1) from `wp_posts` where (post_type = 'page' or post_type = 'post') and `post_status` = 'publish'\";\n\u00a0 $total = $wpdb-&gt;get_var($query);\n\u00a0 echo \"&lt;h2&gt;Archives&lt;\/h2&gt;\";\n\u00a0 $query = \"select concat(year(`post_date`), '-', month(`post_date`)) as `month`, count(1) as `cnt` from `wp_posts` where (post_type='page' or post_type='post') and `post_status` = 'publish' group by `month` order by `post_date` desc\";\n\u00a0 $result = $wpdb-&gt;get_results($query);\n\u00a0 echo \"&lt;ul&gt;\";\n\u00a0 if ($result) {\n\u00a0 \u00a0 foreach ($result as $month) {\n\u00a0 \u00a0 \u00a0 echo \"&lt;li&gt;\".$month-&gt;month.\" (\".$month-&gt;cnt.\")&lt;\/li&gt;\"; \u00a0\n\u00a0 \u00a0 \u00a0 $m = explode('-', $month-&gt;month);\n\u00a0 \u00a0 \u00a0 $y = $m[0];\n\u00a0 \u00a0 \u00a0 $m = $m[1];\n\u00a0 \u00a0 \u00a0 $q = \"select `post_name`, `post_title`, day(`post_date`) as `day`, `id` from `wp_posts` where (post_type='page' or post_type='post') and `post_status` = 'publish' and month(`post_date`)='$m' and year(`post_date`)='$y' order by `post_date` desc\";\n\u00a0 \u00a0 \u00a0 $r = $wpdb-&gt;get_results($q);\n\u00a0 \u00a0 \u00a0 if ($r) {\n\u00a0 \u00a0 \u00a0 \u00a0 echo \"&lt;ul&gt;\";\n\u00a0 \u00a0 \u00a0 \u00a0 foreach ($r as $post) {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 $cnt = $wpdb-&gt;get_var(\"select count(1) from `wp_comments` where `comment_approved`=1 and `comment_post_ID` = \".$post-&gt;id);\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if (!$cnt) $cnt = 0; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 echo \"&lt;li&gt;\".$post-&gt;day.\": &lt;a title='\".htmlentities($post-&gt;post_title, ENT_QUOTES).\"' href='&lt;a class=\"vglnk\" target=\"_blank\" href=\"https:\/\/helloacm.com\/\".$post-\" rel=\"nofollow\"&gt;&lt;span&gt;https&lt;\/span&gt;&lt;span&gt;:\/\/&lt;\/span&gt;&lt;span&gt;helloacm&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;com&lt;\/span&gt;&lt;span&gt;\/\".$&lt;\/span&gt;&lt;span&gt;post&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;\/a&gt;&gt;post_name.\"\/'&gt;\".$post-&gt;post_title.\"&lt;\/a&gt; ($cnt)&lt;\/li&gt;\"; \u00a0\n\u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 \u00a0 echo \"&lt;\/ul&gt;\";\n\u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 } \u00a0\n\u00a0 }\n\u00a0 echo \"&lt;\/ul&gt;\";<\/code><\/pre>\n<p>Algorytm tutaj polega na grupowaniu wed\u0142ug rok-miesi\u0105c w SQL i zap\u0119tleniu ka\u017cdego miesi\u0105ca i pobieraniu wszystkich post\u00f3w\/stron z tego miesi\u0105ca. U\u017cyj zmiennej globalnej <strong>$wpdb<\/strong>, aby uruchomi\u0107 instrukcj\u0119 SQL. U\u017cyj <strong>get_var<\/strong> dla pojedynczych zmiennych instrukcji SQL, takich jak <strong>select count(1)<\/strong> i u\u017cyj <strong>get_results<\/strong> dla wielu wierszy.<\/p>\n<p>Zmie\u0144 nazw\u0119 tabeli wordpress <strong>wp_posts<\/strong>, je\u015bli przedrostkiem nie jest <strong>wp_<\/strong>. Mo\u017cesz jednak u\u017cy\u0107 <strong>$wpdb-&gt;posts<\/strong>, aby uzyska\u0107 nazw\u0119 tabeli posts, co jest lepsz\u0105 metod\u0105. Filtruj posty\/strony, odpowiednio zmieniaj\u0105c odpowiednie instrukcje SQL (gdzie przyczyna).<\/p>\n<p>Dodatkowo, polubienia na Facebooku s\u0105 r\u00f3wnie\u017c liczone i uwzgl\u0119dniane w nawiasach. Aby to zrobi\u0107, musisz utworzy\u0107 kolejn\u0105 tabel\u0119, kt\u00f3ra ma par\u0119 kluczy dla identyfikatora artyku\u0142u i numeru polubie\u0144. B\u0119dziesz musia\u0142 skonfigurowa\u0107 <a href=\"https:\/\/helloacm.com\/crontab-generator\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">crontab<\/a>, kt\u00f3ry uruchamia si\u0119 raz na godzin\u0119, aby aktualizowa\u0107 polubienia na Facebooku (lub inne sieci spo\u0142eczno\u015bciowe) dla ka\u017cdego posta. Zostanie to om\u00f3wione w innym osobnym samouczku.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jak utworzy\u0107 stron\u0119 archiw\u00f3w (podsumowanie) dla wszystkich post\u00f3w\/stron WordPress za pomoc\u0105 PHP?<\/p>\n","protected":false},"author":1,"featured_media":224083,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[919,897,805,836,845,866],"tags":[1169,1169],"class_list":["post-233001","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-inny","category-kod","category-php-7","category-przewodnik-dla-poczatkujacych","category-samouczki","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/233001","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=233001"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/233001\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/224083"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=233001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=233001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=233001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}