お手軽WordPress Tips:プラグインを使わず、簡単なコードでシンプルなサイトマップを作成する

Ads

WordPressで構築したサイトの対人用
サイトマップをプラグイン無しで作るTips。
手作業は面倒だけど、プラグイン使うほど
じゃない、という気もするので、簡単に作
れる方法をご紹介します。もちろん、良い
プラグインも存在しますので、プラグインで
問題ないならその方がいいと思います。

プラグインでしたら@jim0912さん作のPS Auto Sitemapというのが一番便利そうです。

ここでは、諸事情でプラグイン使えないんだという方用に。そんな場合あるのかよって言われそうですけど僕はあったのです・・・そう、あれは去年の夏のある日のこt

コード

以下のコードをfunctions.phpに貼り付けます。

function simple_sitemap(){
	global $wpdb; 
	$args = array('depth'        => 0,
		'show_date'    => NULL,
		'date_format'  => get_option('date_format'),
		'child_of'     => 0,
		'exclude'      => NULL,
		'include'      => NULL,
		'title_li'           => '<span class="subheader">固定ページの一覧</span>',
		'echo'         => 1,
		'authors'      => NULL,
		'sort_column'  => 'menu_order, post_title',
		'link_before'  => NULL,
		'link_after'   => NULL,
		'exclude_tree' => NULL ); 
 
	echo '<div id="sitemap"><ul>';
		wp_list_pages($args);
	echo '</ul>';
	
	$args = array('show_option_all'    => NULL,
		'orderby'            => 'name',
		'order'              => 'ASC',
		'show_last_update'   => 0,
		'style'              => 'list',
		'show_count'         => 0,
		'hide_empty'         => 1,
		'use_desc_for_title' => 1,
		'child_of'           => 0,
		'feed'               => NULL,
		'feed_type'          => NULL,
		'feed_image'         => NULL,
		'exclude'            => NULL,
		'exclude_tree'       => NULL,
		'include'            => NULL,
		'hierarchical'       => true,
		'title_li'           => '<span class="subheader">記事カテゴリ</span>',
		'number'             => NULL,
		'echo'               => 1,
		'depth'              => 0,
		'current_category'   => 0,
		'pad_counts'         => 0,
		'taxonomy'           => 'category',
		'walker'             => 'Walker_Category' );
	
        echo '<ul>';
	   echo wp_list_categories( $args );
	   echo '</ul>';	
	echo '</div>';
}
add_shortcode('sitemap', 'simple_sitemap');

これで、サイトマップを作成したいページに

Ads

固定ページ

投稿一覧

カテゴリー

と入力すれば全固定ページとカテゴリが全て表示されます。見出しのテキストは適当に変えてください。

実装


グチャグチャwスタイルしてないのでアレですけど、子ページ(子カテゴリ)や孫ページも表示できますので、なかなかサイトマップっぽく表示できます。

固定ページだけでいい場合

カテゴリもいらん、という方はコード削ってあげてください。

function simple_sitemap(){
	global $wpdb; 
	$args = array('depth'        => 0,
		'show_date'    => NULL,
		'date_format'  => get_option('date_format'),
		'child_of'     => 0,
		'exclude'      => NULL,
		'include'      => NULL,
		'title_li'           => '<span class="subheader">固定ページの一覧</span>',
		'echo'         => 1,
		'authors'      => NULL,
		'sort_column'  => 'menu_order, post_title',
		'link_before'  => NULL,
		'link_after'   => NULL,
		'exclude_tree' => NULL ); 
 
	echo '<div id="sitemap"><ul>';
		wp_list_pages($args);
	echo '</ul></div>';
	
}
add_shortcode('sitemap', 'simple_sitemap');

サイトマップ用のファイルとか用意すればいいんでしょうけど、なんかそれも地味に面倒くさいのでこれでいいのです。

via:snipplr