お手軽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