{"id":232991,"date":"2023-02-02T16:03:00","date_gmt":"2023-02-02T13:03:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232991"},"modified":"2022-11-10T18:39:57","modified_gmt":"2022-11-10T15:39:57","slug":"como-crear-una-pagina-de-archivos-resumen-para-todas-las-publicaciones-paginas-de-wordpress-usando-php","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/como-crear-una-pagina-de-archivos-resumen-para-todas-las-publicaciones-paginas-de-wordpress-usando-php\/","title":{"rendered":"\u00bfC\u00f3mo crear una p\u00e1gina de archivos (resumen) para todas las publicaciones\/p\u00e1ginas de WordPress usando PHP?"},"content":{"rendered":"\n<p>Acabo de crear dos p\u00e1ginas de resumen para mis dos blogs: <a href=\"https:\/\/helloacm.com\/archives-of-pagesposts\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/helloacm.com\/archives-of-pagesposts\/<\/a> y <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>En ambas p\u00e1ginas, todos los art\u00edculos (incluidas las p\u00e1ginas) est\u00e1n ordenados por meses. El n\u00famero de comentarios para cada publicaci\u00f3n se contar\u00e1 e imprimir\u00e1 despu\u00e9s del t\u00edtulo de la publicaci\u00f3n entre par\u00e9ntesis.<\/p>\n<p>Esto puede ser bueno para enumerar todos los art\u00edculos\/p\u00e1ginas para los usuarios y tambi\u00e9n para los motores de b\u00fasqueda, por lo que esta p\u00e1gina tambi\u00e9n sirve como un mapa del sitio.<\/p>\n<p>Como puede ver en la p\u00e1gina de resumen, primero, imprime el n\u00famero total de publicaciones\/p\u00e1ginas, y para cada mes (solo si hay al menos una publicaci\u00f3n\/p\u00e1gina publicada en ese mes), generar\u00e1 enlaces sangrados.<\/p>\n<p>Entonces, \u00bfc\u00f3mo vamos a lograr esto? En primer lugar, dentro de WordPress, necesitar\u00eda algunos complementos para poder incluir c\u00f3digo PHP en publicaciones\/p\u00e1ginas. Vaya al panel de control de wordpress despu\u00e9s de iniciar sesi\u00f3n y navegue hasta Complementos y &#8216;Agregar nuevo&#8217;. Busque &#8216;Incluir PHP&#8217; y encontrar\u00e1 muchas opciones.<\/p>\n<p>Luego, copie y pegue el siguiente c\u00f3digo PHP en un solo archivo PHP, en el directorio ra\u00edz 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>El algoritmo aqu\u00ed es agrupar por a\u00f1o-mes en SQL y repetir cada mes, y obtener todas las publicaciones\/p\u00e1ginas de ese mes. Use la variable global <strong>$wpdb<\/strong> para ejecutar la instrucci\u00f3n SQL. Use <strong>get_var<\/strong> para declaraciones SQL de una sola variable, como <strong>select count(1)<\/strong> y use <strong>get_results<\/strong> para varias filas.<\/p>\n<p>Cambie el nombre de la tabla de wordpress <strong>wp_posts<\/strong> si el prefijo no es <strong>wp_<\/strong>. Sin embargo, puede usar <strong>$wpdb-&gt;posts<\/strong> para obtener el nombre de la tabla de publicaciones, que es un mejor m\u00e9todo. Filtre las publicaciones\/p\u00e1ginas cambiando las declaraciones SQL correspondientes (donde la causa) en consecuencia.<\/p>\n<p>Adem\u00e1s, los Me gusta de Facebook tambi\u00e9n se cuentan y se incluyen entre par\u00e9ntesis. Para hacer esto, deber\u00e1 crear otra tabla que tenga el par de claves para la identificaci\u00f3n del art\u00edculo y el n\u00famero de Me gusta. Deber\u00e1 configurar un <a href=\"https:\/\/helloacm.com\/crontab-generator\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">crontab<\/a> que se ejecute quiz\u00e1s una vez por hora para actualizar los Me gusta de Facebook (u otras redes sociales) para cada publicaci\u00f3n. Esto se tratar\u00e1 en otro tutorial separado.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfC\u00f3mo crear una p\u00e1gina de archivos (resumen) para todas las publicaciones\/p\u00e1ginas de WordPress usando 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":[892,831,914,800,840,861],"tags":[1172],"class_list":["post-232991","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-guia-para-principiantes","category-otro","category-php-2","category-tutoriales","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/232991","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=232991"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/232991\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/224083"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=232991"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=232991"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=232991"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}