{"id":233046,"date":"2023-02-02T16:39:00","date_gmt":"2023-02-02T13:39:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233046"},"modified":"2022-11-10T18:54:55","modified_gmt":"2022-11-10T15:54:55","slug":"come-creare-una-pagina-di-archivi-riepilogo-per-tutti-i-post-pagine-di-wordpress-usando-php","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/come-creare-una-pagina-di-archivi-riepilogo-per-tutti-i-post-pagine-di-wordpress-usando-php\/","title":{"rendered":"Come creare una pagina di archivi (riepilogo) per tutti i post\/pagine di WordPress usando PHP?"},"content":{"rendered":"\n<p>Ho appena creato due pagine di riepilogo per i miei due blog: <a href=\"https:\/\/helloacm.com\/archives-of-pagesposts\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/helloacm.com\/archives-of-pagesposts\/<\/a> e <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>In entrambe le pagine, tutti gli articoli (comprese le pagine) sono ordinati per mesi. Il numero di commenti per ogni post verr\u00e0 conteggiato e stampato dopo il titolo del post tra parentesi.<\/p>\n<p>Questo pu\u00f2 essere utile per elencare tutti gli articoli\/pagine per gli utenti e anche per i motori di ricerca, quindi questa pagina funge anche da mappa del sito.<\/p>\n<p>Come puoi vedere nella pagina di riepilogo, prima stampa il numero totale di post\/pagine, e per ogni mese (solo se c&#8217;\u00e8 almeno un post\/pagina pubblicato in quel mese), generer\u00e0 dei link rientrati.<\/p>\n<p>Quindi, come possiamo raggiungere questo obiettivo? Prima di tutto, all&#8217;interno di WordPress, avresti bisogno di alcuni plugin per poter includere il codice PHP all&#8217;interno di post\/pagine. Vai al pannello di controllo di wordpress dopo aver effettuato l&#8217;accesso e vai a Plugin e &#8216;Aggiungi nuovo&#8217;. Cerca &#8216;Includi PHP&#8217; e troverai molte opzioni.<\/p>\n<p>Quindi, copia e incolla il seguente codice PHP in un unico file PHP, nella directory principale del tema.<\/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>L&#8217;algoritmo qui \u00e8 quello di raggruppare per anno-mese in SQL e ripetere ogni mese e ottenere tutti i post\/pagine per quel mese. Utilizzare la variabile globale <strong>$wpdb<\/strong> per eseguire l&#8217;istruzione SQL. Utilizzare <strong>get_var<\/strong> per istruzioni SQL a singola variabile come <strong>select count(1)<\/strong> e utilizzare <strong>get_results<\/strong> per pi\u00f9 righe.<\/p>\n<p>Cambia il nome della tabella wordpress <strong>wp_posts<\/strong> se il prefisso non \u00e8 <strong>wp_<\/strong>. Tuttavia, puoi usare <strong>$wpdb-&gt;posts<\/strong> per ottenere il nome della tabella dei post, che \u00e8 un metodo migliore. Filtra i post\/le pagine modificando di conseguenza le istruzioni SQL (dove causa).<\/p>\n<p>Inoltre, i Mi piace di Facebook vengono contati e inclusi anche tra parentesi. Per fare ci\u00f2, dovrai creare un&#8217;altra tabella che abbia la coppia di chiavi per l&#8217;ID articolo e il numero Mi piace. Dovrai configurare un <a href=\"https:\/\/helloacm.com\/crontab-generator\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">crontab<\/a> che funzioni forse una volta all&#8217;ora per aggiornare i Mi piace di Facebook (o altri social network) per ogni post. Questo sar\u00e0 trattato in un altro tutorial separato.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Come creare una pagina di archivi (riepilogo) per tutti i post\/pagine di WordPress utilizzando 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":[918,896,835,804,844,865],"tags":[1168],"class_list":["post-233046","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-altro","category-codice","category-guida-per-principianti","category-php-6","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/233046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=233046"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/233046\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/224083"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=233046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=233046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=233046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}