Crear una página con un mapa del sitio en HTML

mapa del sitio html

Yo creo que a estas alturas es de todos conocida la necesidad de disponer de un mapa del sitio (sitemap) en XML para que los principales buscadores sepan organizar sus «visitas» por tu web, pero también es interesante disponer de un mapa en HTML.

Un mapa del sitio en HTML no solo sirve para ofrecer una vista jerárquica de tu web a los visitantes, lo que de por sí ya formaría parte de tu estructura de enlaces internos, sino que también es un estándar veterano que los buscadores saben reconocer.

Es verdad que hay algunos temas WordPress que ya disponen de una plantilla de página que muestra un mapa del sitio en HTML pero si tu tema no dispone de esta plantilla de página puedes disponer también de tu sitemap HTML con facilidad.

:: Crear mapa del sitio HTML con código ::

plantilla de página sitemap

Si no quieres usar plugins no hay problema, puedes crear tu propia plantilla de página y que muestre un mapa del sitio en HTML, los pasos son los siguientes:

  1. Crea un fichero vacío denominado sitemap.php en la carpeta del tema activo.
  2. Abre el archivo recién creado y añade la cabecera que lo identifica como plantilla de página de WordPress y muestra la cabecera de tu tema a continuación, algo así:
    <?php
    /*
    Template Name: Mapa del sitio HTML
    */
    ?>
    <?php get_header(); ?>
    
  3. A continuación de estas líneas copia el siguiente código, que es el que genera el mapa del sitio en HTML:
    <div id="content" >
      <div class="post">
        <div class="title">
          <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Enlace permanente <?php the_title(); ?>">
            <?php the_title(); ?>
    <!-- ----------------- Mostramos las entradas y su categoría ----------------- -->
            </a></h2>
        </div>
        <div class="entry siteMap">
          <h2 id="posts">Entradas</h2>
          <ul>
            <?php
    // Añadimos categorías separadas por comas, que queramos no mostrar en el mapa,en el exclude
    $cats = get_categories('exclude=');
    foreach ($cats as $cat) {
      echo "<li><h3>".$cat->cat_name."</h3>";
      echo "<ul>";
      query_posts('posts_per_page=-1&cat='.$cat->cat_ID);
      while(have_posts()) {
        the_post();
        $category = get_the_category();
        // Solo se muestra un enlace de entrada cada vez, aunque esté en varias categorías
        if ($category[0]->cat_ID == $cat->cat_ID) {
          echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
        }
      }
      echo "</ul>";
      echo "</li>";
    }
    ?>
          </ul>
    <!-- ----------------- Mostramos las categorías ----------------- -->
          <h2>Categorías</h2>
          <ul>
            <?php wp_list_cats('sort_column=name&optioncount=1&hierarchical=0&feed=RSS'); ?>
          </ul>  
    <!-- ----------------- Mostramos las páginas ----------------- -->
          <h2 id="pages">Páginas</h2>
          <ul>
            <?php
    // Añadimos las páginas separadas por comas, que queramos excluir del mapa en el exclude
    wp_list_pages(
      array(
        'exclude' => '',
        'title_li' => '',
      )
    );
    ?>
          </ul>
        </div>
      </div>
    </div>
  4. Al final del código del mapa del sitio añade estos otros códigos para mostrar la barra lateral y el pié de página de tu tema (puede variar, usa la base del fichero page.php de tu tema:
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
  5. El código final de nuestro archivo sitemap.php quedaría así:
    <?php
    /*
    Template Name: Mapa del sitio HTML
    */
    ?>
    <?php get_header(); ?>
    <div id="content" >
      <div class="post">
        <div class="title">
          <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Enlace permanente <?php the_title(); ?>">
            <?php the_title(); ?>
    <!-- ----------------- Mostramos las entradas y su categoría ----------------- -->
            </a></h2>
        </div>
        <div class="entry siteMap">
          <h2 id="posts">Entradas</h2>
          <ul>
            <?php
    // Añadimos categorías separadas por comas, que queramos no mostrar en el mapa,en el exclude
    $cats = get_categories('exclude=');
    foreach ($cats as $cat) {
      echo "<li><h3>".$cat->cat_name."</h3>";
      echo "<ul>";
      query_posts('posts_per_page=-1&cat='.$cat->cat_ID);
      while(have_posts()) {
        the_post();
        $category = get_the_category();
        // Solo se muestra un enlace de entrada cada vez, aunque esté en varias categorías
        if ($category[0]->cat_ID == $cat->cat_ID) {
          echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
        }
      }
      echo "</ul>";
      echo "</li>";
    }
    ?>
          </ul>
    <!-- ----------------- Mostramos las categorías ----------------- -->
          <h2>Categorías</h2>
          <ul>
            <?php wp_list_cats('sort_column=name&optioncount=1&hierarchical=0&feed=RSS'); ?>
          </ul>  
    <!-- ----------------- Mostramos las páginas ----------------- -->
          <h2 id="pages">Páginas</h2>
          <ul>
            <?php
    // Añadimos las páginas separadas por comas, que queramos excluir del mapa en el exclude
    wp_list_pages(
      array(
        'exclude' => '',
        'title_li' => '',
      )
    );
    ?>
          </ul>
        </div>
      </div>
    </div>
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
  6. Creamos una nueva página en el editor de WordPress a la que solo tenemos que poner título.
    crear pagina con plantilla sitemap
  7. Elegimos la plantilla de página recién creada y publicamos
    elegir plantilla de pagina sitemap

Lo que obtenemos es un completo mapa del sitio en HTML.

mapa del sitio html

Si quieres puedes descargarte el código completo de la plantilla a continuación:
[download id=»151″]

:: Crear mapa del sitio HTML con plugins ::

Si no nos animamos a crear nuestra propia plantilla de página siempre podemos recurrir a plugins que lo harán por nosotros, estos son algunos:

  • HTML page sitemap: solo tienes que activarlo, crear una página nueva y, donde iría el texto de la página añadir este shortcode: [html_sitemap] para tener tu mapa del sitio en HTML.
  • Sitemap page: en este caso, cuando lo hayas instalado y activado, insertas este otro shortcode: [wp_sitemap_page]
  • WP realtime sitemap: veterano pero aún funciona, como los otros tienes que añadir un shortcode, en este caso este: [wp-realtime-sitemap]

Solo tienes que elegir el que más te guste.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(12 votos, promedio: 3.9)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

3 comentarios en “Crear una página con un mapa del sitio en HTML”

  1. Genial! Plugin menos! sabes cómo se podría hacer para ordenar las categorías por el número de post existentes y no por el orden alfabético que aparece por defecto? Gracias!

  2. Por cierto, google webmasters parece no admitir sitemaps en html… «Tu sitemap parece ser una página HTML. Utiliza un formato de sitemap compatible. Google admite archivos de texto, sitemaps XML basados en el protocolo de sitemaps y feeds RSS o Atom 1.0»
    Una pena… va a tocar volver al plugin…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido