
Como crear un sitemap sin plugin en WordPress.
No hace falta comentar mucho por qué debes tener un sitemap en tu sitio web.
De todas formas si necesitas un empujoncito para convencerte, aquí tienes algunas razones para crear un sitemap en tu web.
En aquel post te explicaba como crearlo con un plugin: WP Sitemap Page. En esta ocasión te explico como hacer el mismo sitemap pero solo con código y con extensión .html
Si como yo prefieres evitar sobrecargas a tu web con más y más plugins, te invito a seguir leyendo.
Creando tu fichero .php
Lo primero es crear un archivo .php que guardarás en la carpeta de tu theme activo. Si tienes un tema hijo (recomendado) pues en esta carpeta.
Nombra ese archivo como sitemap.php y listo. Puedes nombrar el archivo como quieras (esta recomendación es una cuestión organizativa).
Como crear este archivo sitemap sin plugin
Si no tienes ni idea de como crear un archivo .php no pasa nada. Abre tu bloc de notas y guárdalo con el nombre-que-quieras.php, es imprescindible que lo guardes como .php
En ese archivo creado guarda el siguiente código:
</a></h2> </div> <div class="entry siteMap"> <h2 id="posts">Entradas</h2> <ul> <?php // En exclude (excluir) puedes obviar las categorías que no queramos mostrar en el mapa $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(); // Aunque esté en varias categorías, solo mostrará un enlace de entrada cada vez if ($category[0]->cat_ID == $cat->cat_ID) { echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>'; } } echo "</ul>"; echo "</li>"; } ?> </ul> <!-- ----------------- Muestra las categorías ----------------- --> <h2>Categorías</h2> <ul> <?php wp_list_cats('sort_column=name&optioncount=1&hierarchical=0&feed=RSS'); ?> </ul> <!-- ----------------- Muestra las páginas ----------------- --> <h2 id="pages">Páginas</h2> <ul> <?php // En exclude (excluir) puedes obviar las páginas que no queramos mostrar en el mapa wp_list_pages( array( 'exclude' => '', 'title_li' => '', ) ); ?> </ul> </div> </div> </div> <?php get_sidebar(); ?> <?php get_footer(); ?>
Notas sobre el código
Cuando revises el código verás este tipo de notas:
// En exclude (excluir) puedes obviar las categorías que no queramos mostrar en el mapa
Para traducir esto en humano, lo que quiere decir es que hay páginas o categorías que puedes no querer incluir en tu sitemap.
Para ponerlo en funcionamiento deberás agregar los nombres de esas categorías aquí:
$cats = get_categories('exclude=');
Pero ojo! En el exclude no puedes poner el nombre de tu página o categoría tal cual, sino que deberás poner el id de referencia.
Encontrar este id es muy sencillo. Si desde el administrador entras en la categoría o la página verás en la url algo similar a esto post=288. Ese es tu id.
Entonces sería incluir en el código algo así, tanto si vas a exluir una página o varias:
$cats = get_categories('exclude=post=288, post=289');
Creando tu página de sitemap para publicar el sitemap sin plugin
Para terminar crea una página nueva en el editor de WordPress.
A la derecha en la columna de ajustes tienes la pestaña Atributos de página/Plantilla, selecciona tu plantilla de esta forma:

Publica tu página. Comprueba! Ya tienes sitemap sin plugin.
PD: acabas de crear una plantilla para WordPress. Con esto te quiero decir que puedes reutilizar parte de este código para crear muchas más (landing pages, páginas personalizadas, etc).
PD2: puedes descargar el código aquí debajo: