{"id":12216,"date":"2023-03-13T11:02:31","date_gmt":"2023-03-13T15:02:31","guid":{"rendered":"https:\/\/www.hospitaldelinares.gob.cl\/?page_id=12216"},"modified":"2026-01-22T14:26:11","modified_gmt":"2026-01-22T18:26:11","slug":"12216-2","status":"publish","type":"page","link":"https:\/\/www.hospitaldelinares.gob.cl\/?page_id=12216","title":{"rendered":""},"content":{"rendered":"<p><?php\n\/\/ Evita acceso directo\nif (!defined('ABSPATH')) exit;\n\n\/\/ Funci\u00f3n principal para listar archivos\nfunction listar_archivos_categoria_11() {\n    $cat_id = 11; \/\/ Categor\u00eda principal\n    $archivos = array();\n\n    \/\/ Obtener categor\u00eda y subcategor\u00edas\n    $categoria = get_category($cat_id);\n    $subcategorias = get_categories(array(\n        'child_of' => $cat_id,<br \/>\n        &#8216;hide_empty&#8217; => false<br \/>\n    ));<br \/>\n    $categorias = array_merge(array($categoria), $subcategorias);<\/p>\n<p>    foreach ($categorias as $cat) {<br \/>\n        \/\/ Obtener posts de esta categor\u00eda<br \/>\n        $posts = get_posts(array(<br \/>\n            &#8216;category&#8217; => $cat->term_id,<br \/>\n            &#8216;numberposts&#8217; => -1,<br \/>\n            &#8216;post_status&#8217; => &#8216;publish&#8217;,<br \/>\n            &#8216;post_type&#8217; => &#8216;post&#8217;<br \/>\n        ));<\/p>\n<p>        foreach ($posts as $post) {<br \/>\n            \/\/ M\u00e9todo 1: Archivos adjuntos directos al post<br \/>\n            $adjuntos = get_attached_media(&#8216;application\/pdf&#8217;, $post->ID); \/\/ Cambia &#8216;application\/pdf&#8217; por \u00bb para todos los tipos<br \/>\n            foreach ($adjuntos as $archivo) {<br \/>\n                $archivos[] = array(<br \/>\n                    &#8216;categoria&#8217; => $cat->name,<br \/>\n                    &#8216;post_titulo&#8217; => $post->post_title,<br \/>\n                    &#8216;archivo_nombre&#8217; => basename(get_attached_file($archivo->ID)),<br \/>\n                    &#8216;archivo_url&#8217; => wp_get_attachment_url($archivo->ID),<br \/>\n                    &#8216;post_id&#8217; => $post->ID,<br \/>\n                    &#8216;archivo_id&#8217; => $archivo->ID<br \/>\n                );<br \/>\n            }<\/p>\n<p>            \/\/ M\u00e9todo 2: Si usan campos personalizados (com\u00fan en hospitaldelinares.gob.cl)<br \/>\n            $archivos_meta = get_post_meta($post->ID, &#8216;archivo_adjunto&#8217;, true); \/\/ Cambia &#8216;archivo_adjunto&#8217; por tu campo ACF\/meta_key<br \/>\n            if ($archivos_meta) {<br \/>\n                $archivos[] = array(<br \/>\n                    &#8216;categoria&#8217; => $cat->name,<br \/>\n                    &#8216;post_titulo&#8217; => $post->post_title,<br \/>\n                    &#8216;archivo_nombre&#8217; => basename($archivos_meta),<br \/>\n                    &#8216;archivo_url&#8217; => $archivos_meta,<br \/>\n                    &#8216;post_id&#8217; => $post->ID,<br \/>\n                    &#8216;archivo_id&#8217; => &#8216;meta&#8217;<br \/>\n                );<br \/>\n            }<\/p>\n<p>            \/\/ M\u00e9todo 3: M\u00faltiples archivos en repeater ACF (descomenta si aplica)<br \/>\n            \/*<br \/>\n            if (function_exists(&#8216;get_field&#8217;)) {<br \/>\n                $archivos_repeater = get_field(&#8216;archivos_documentos&#8217;, $post->ID); \/\/ Nombre de repeater ACF<br \/>\n                if ($archivos_repeater) {<br \/>\n                    foreach ($archivos_repeater as $item) {<br \/>\n                        $archivos[] = array(<br \/>\n                            &#8216;categoria&#8217; => $cat->name,<br \/>\n                            &#8216;post_titulo&#8217; => $post->post_title,<br \/>\n                            &#8216;archivo_nombre&#8217; => basename($item[&#8216;archivo&#8217;][&#8216;url&#8217;]),<br \/>\n                            &#8216;archivo_url&#8217; => $item[&#8216;archivo&#8217;][&#8216;url&#8217;],<br \/>\n                            &#8216;post_id&#8217; => $post->ID<br \/>\n                        );<br \/>\n                    }<br \/>\n                }<br \/>\n            }<br \/>\n            *\/<br \/>\n        }<br \/>\n    }<\/p>\n<p>    return $archivos;<br \/>\n}<\/p>\n<p>\/\/ Hook para mostrar v\u00eda par\u00e1metro URL (?listar_archivos=1)<br \/>\nadd_action(&#8216;wp&#8217;, function() {<br \/>\n    if (isset($_GET[&#8216;listar_archivos&#8217;]) &#038;&#038; $_GET[&#8216;listar_archivos&#8217;] == 1 &#038;&#038; current_user_can(&#8216;manage_options&#8217;)) {<br \/>\n        $archivos = listar_archivos_categoria_11();<br \/>\n        echo &#8216;<\/p>\n<h2>Archivos de Categor\u00eda 11 y Subcategor\u00edas (&#8216; . count($archivos) . &#8216; encontrados)<\/h2>\n<p>&#8216;;<\/p>\n<p>        \/\/ Tabla HTML<br \/>\n        echo &#8216;<\/p>\n<table border=\"1\" style=\"border-collapse:collapse; width:100%;\">\n<tr>\n<th>Categor\u00eda<\/th>\n<th>Post<\/th>\n<th>Nombre Archivo<\/th>\n<th>URL<\/th>\n<th>ID Post\/Archivo<\/th>\n<\/tr>\n<p>&#8216;;<br \/>\n        foreach ($archivos as $arc) {<br \/>\n            echo &#8216;<\/p>\n<tr>\n<td>&#8216; . esc_html($arc[&#8216;categoria&#8217;]) . &#8216;<\/td>\n<td>&#8216; . esc_html($arc[&#8216;post_titulo&#8217;]) . &#8216;<\/td>\n<td>&#8216; . esc_html($arc[&#8216;archivo_nombre&#8217;]) . &#8216;<\/td>\n<td><a href=\"' . esc_url($arc['archivo_url']) . '\" target=\"_blank\">&#8216; . esc_url($arc[&#8216;archivo_url&#8217;]) . &#8216;<\/a><\/td>\n<td>&#8216; . $arc[&#8216;post_id&#8217;] . &#8216;\/&#8217; . $arc[&#8216;archivo_id&#8217;] . &#8216;<\/td>\n<\/tr>\n<p>&#8216;;<br \/>\n        }<br \/>\n        echo &#8216;<\/table>\n<p>&#8216;;<\/p>\n<p>        \/\/ CSV Download<br \/>\n        $csv = \u00abCategor\u00eda,Post,Archivo Nombre,URL,IDs\\n\u00bb;<br \/>\n        foreach ($archivos as $arc) {<br \/>\n            $csv .= &#8216;\u00bb&#8216; . str_replace(&#8216;\u00bb&#8216;, &#8216;\u00bb\u00bb&#8216;, $arc[&#8216;categoria&#8217;]) . &#8216;\u00bb,\u00bb&#8216; . str_replace(&#8216;\u00bb&#8216;, &#8216;\u00bb\u00bb&#8216;, $arc[&#8216;post_titulo&#8217;]) . &#8216;\u00bb,\u00bb&#8216; .<br \/>\n                    str_replace(&#8216;\u00bb&#8216;, &#8216;\u00bb\u00bb&#8216;, $arc[&#8216;archivo_nombre&#8217;]) . &#8216;\u00bb,\u00bb&#8216; . $arc[&#8216;archivo_url&#8217;] . &#8216;\u00bb,\u00bb&#8216; . $arc[&#8216;post_id&#8217;] . &#8216;\/&#8217; . $arc[&#8216;archivo_id&#8217;] . &#8216;\u00bb&#8216;;<br \/>\n            $csv .= \u00ab\\n\u00bb;<br \/>\n        }<br \/>\n        echo &#8216;<\/p>\n<p><a href=\"data:text\/csv;charset=utf-8,' . urlencode($csv) . '\" download=\"archivos_cat11.csv\">Descargar CSV<\/a><\/p>\n<p>&#8216;;<br \/>\n        exit;<br \/>\n    }<br \/>\n});<\/p>\n<p>\/\/ Shortcode [archivos_cat11] para p\u00e1ginas\/posts<br \/>\nadd_shortcode(&#8216;archivos_cat11&#8217;, function() {<br \/>\n    ob_start();<br \/>\n    $archivos = listar_archivos_categoria_11();<br \/>\n    echo &#8216;<\/p>\n<p>Total: &#8216; . count($archivos) . &#8216; archivos<\/p>\n<ul>&#8216;;<br \/>\n    foreach ($archivos as $arc) {<br \/>\n        echo &#8216;<\/p>\n<li><strong>&#8216; . esc_html($arc[&#8216;categoria&#8217;] . &#8216; &#8211; &#8216; . $arc[&#8216;post_titulo&#8217;]) . &#8216;<\/strong><br \/>&#8216;;<br \/>\n        echo &#8216;Archivo: <a href=\"' . esc_url($arc['archivo_url']) . '\">&#8216; . esc_html($arc[&#8216;archivo_nombre&#8217;]) . &#8216;<\/a><\/li>\n<p>&#8216;;<br \/>\n    }<br \/>\n    echo &#8216;<\/ul>\n<p>&#8216;;<br \/>\n    return ob_get_clean();<br \/>\n});<br \/>\n?><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-12216","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.hospitaldelinares.gob.cl\/index.php?rest_route=\/wp\/v2\/pages\/12216","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hospitaldelinares.gob.cl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.hospitaldelinares.gob.cl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.hospitaldelinares.gob.cl\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hospitaldelinares.gob.cl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=12216"}],"version-history":[{"count":7,"href":"https:\/\/www.hospitaldelinares.gob.cl\/index.php?rest_route=\/wp\/v2\/pages\/12216\/revisions"}],"predecessor-version":[{"id":14849,"href":"https:\/\/www.hospitaldelinares.gob.cl\/index.php?rest_route=\/wp\/v2\/pages\/12216\/revisions\/14849"}],"wp:attachment":[{"href":"https:\/\/www.hospitaldelinares.gob.cl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=12216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}