{"id":232976,"date":"2023-02-02T16:38:00","date_gmt":"2023-02-02T13:38:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232976"},"modified":"2022-11-10T18:36:09","modified_gmt":"2022-11-10T15:36:09","slug":"hur-skapar-man-en-sida-med-arkiv-sammanfattning-foer-alla-wordpress-inlaegg-sidor-med-php","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/hur-skapar-man-en-sida-med-arkiv-sammanfattning-foer-alla-wordpress-inlaegg-sidor-med-php\/","title":{"rendered":"Hur skapar man en sida med arkiv (sammanfattning) f\u00f6r alla WordPress-inl\u00e4gg\/sidor med PHP?"},"content":{"rendered":"<p>Jag har precis skapat tv\u00e5 sammanfattningssidor f\u00f6r mina tv\u00e5 bloggar: <a href=\"https:\/\/helloacm.com\/archives-of-pagesposts\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/helloacm.com\/archives-of-pagesposts\/<\/a> och <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>P\u00e5 b\u00e5da sidorna \u00e4r alla artiklar (inklusive sidor) sorterade efter m\u00e5nader. Antalet kommentarer f\u00f6r varje inl\u00e4gg kommer att r\u00e4knas och skrivas ut efter inl\u00e4ggets rubrik inom parentes.<\/p>\n<p>Detta kan vara bra att lista alla artiklar\/sidor f\u00f6r anv\u00e4ndare och f\u00f6r s\u00f6kmotorer ocks\u00e5, s\u00e5 den h\u00e4r sidan fungerar ocks\u00e5 som en webbplatskarta.<\/p>\n<p>Som du kan se p\u00e5 sammanfattningssidan skriver den f\u00f6rst ut det totala antalet inl\u00e4gg\/sidor, och f\u00f6r varje m\u00e5nad (endast om det finns minst ett inl\u00e4gg\/sida publicerad den m\u00e5naden) genererar den indragna l\u00e4nkar.<\/p>\n<p>S\u00e5, hur ska vi uppn\u00e5 detta? F\u00f6rst och fr\u00e4mst, inom WordPress, skulle du beh\u00f6va n\u00e5gra plugins f\u00f6r att kunna inkludera PHP-kod i inl\u00e4gg\/sidor. G\u00e5 till kontrollpanelen f\u00f6r wordpress efter att du loggat in och navigera till Plugins och &quot;L\u00e4gg till nytt&quot;. S\u00f6k p\u00e5 &#8217;Inkludera PHP&#8217; s\u00e5 hittar du m\u00e5nga alternativ.<\/p>\n<p>Kopiera sedan och klistra in f\u00f6ljande PHP-kod i en enda PHP-fil, under temarotkatalogen.<\/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>Algoritmen h\u00e4r \u00e4r att gruppera efter \u00e5r-m\u00e5nad i SQL och loop varje m\u00e5nad, och f\u00e5 alla inl\u00e4gg\/sidor f\u00f6r den m\u00e5naden. Anv\u00e4nd den globala variabeln <strong>$wpdb<\/strong> f\u00f6r att k\u00f6ra SQL-satsen. Anv\u00e4nd <strong>get_var<\/strong> f\u00f6r SQL-satser med en variabel som <strong>select count(1)<\/strong> och anv\u00e4nd <strong>get_results<\/strong> f\u00f6r flera rader.<\/p>\n<p>\u00c4ndra wordpress <strong>-tabellnamnet wp_posts<\/strong> om prefixet inte \u00e4r <strong>wp_<\/strong>. D\u00e4remot kan du anv\u00e4nda <strong>$wpdb-&gt;posts<\/strong> f\u00f6r att f\u00e5 namnet p\u00e5 inl\u00e4ggstabellen, vilket \u00e4r en b\u00e4ttre metod. Filtrera inl\u00e4ggen\/sidorna genom att \u00e4ndra motsvarande SQL-satser (d\u00e4r orsak) i enlighet d\u00e4rmed.<\/p>\n<p>Dessutom r\u00e4knas Facebook-gilla-markerna och ing\u00e5r ocks\u00e5 i parentes. F\u00f6r att g\u00f6ra detta m\u00e5ste du skapa en annan tabell som har nyckelparet f\u00f6r artikel-id och likes-nummer. Du kommer att beh\u00f6va st\u00e4lla in en <a href=\"https:\/\/helloacm.com\/crontab-generator\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">crontab<\/a> som k\u00f6rs kanske en g\u00e5ng i timmen f\u00f6r att uppdatera facebook-gilla-markeringarna (eller andra sociala n\u00e4tverk) f\u00f6r varje inl\u00e4gg. Detta kommer att behandlas i en annan separat handledning.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hur skapar man en sida med arkiv (sammanfattning) f\u00f6r alla WordPress-inl\u00e4gg\/sidor med 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":[838,848,901,922,807,868],"tags":[1173],"class_list":["post-232976","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guide-foer-nyboerjare","category-handledningar","category-koda","category-oevrig","category-php-9","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/232976","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=232976"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/232976\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/224083"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=232976"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=232976"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=232976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}