

サイトマップを作成して、呼び出す方法はいくつかあります。固定ページのテンプレートを利用する方法が、多くのサイトで紹介されています。
ここでは、前回の投稿で書いたショートコードで呼び出す方法を取りたいと思います。
https://ks-fdripp.tfmwish.comblog_short/
固定・投稿ページでショートコードを使用できるようにする
上の「固定・投稿ページに、.phpファイルをショートコードで呼び出す-wordpress」で書いた、ショートコードが使用できるようにするコードを子テーマのfanction.phpに追記します。
サイトマップ(.html)を表示する.phpプログラム
以下のコードの内容で、.phpファイルを作成します。この.phpファイルを、ftpソフトなどでfunction.phpと同じ階層にアップロードします。
<div class="site-map">
<h3><a href="<?php echo home_url(); ?>">TOP</a></h3>
<h3>カテゴリ別</h3>
<?php
$args = array('exclude' => 6,
'orderby' => 'name',
'order' => 'DESC',
'parent' => 0,
);
$categories = get_categories($args);
foreach($categories as $category) {
echo '<h4><a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a></h4> ';
?>
<ul>
<?php
global $post;$myposts = get_posts('numberposts=3&category=' . $category->term_id);
foreach($myposts as $post) : setup_postdata($post);
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
<?php }; ?>
<h3>固定ページ</h3>
<ul>
<?php wp_list_pages('title_li='); ?>
</ul>
</div>見出しタグ(H3,H4)は、お持ちのサイトに合うように設定します。
・カテゴリごとの表示記事数
'numberposts=3&category='
「3」の所を変更することで、表示数を変更できます。
・特定のカテゴリを除外
'exclude' => 6
「6」(カテゴリID)の所を変更することで、特定のカテゴリを除外できます。
複数カテゴリを除外する場合は
'exclude' => '1,2,3,4'
今回ファイル名は「sitemap-html.php」にしました。これをショートコードで呼び出すには([]は除いています。)
myphp file='sitemap-html'
実行結果
今回はテストですので、カテゴリ毎表示数3、カテゴリ「プロフィールにかえて」を除外しています。
wordpressの管理画面から、function.phpなどの.phpファイルを編集した場合、うまく動作しない時があります。
その際は、ftpソフトなどでいったん該当ファイルをローカルに保存して、そこで編集を行います。
編集した.phpを、ftpソフトなどで再度アップロードする事で正常動作する場合があります。
.phpを編集する際は、サクラエディタ が、エラーが少ないのではないかと思います。
上のエディタで保存する場合は、文字コード「UTF-8」、BOM「チェック無し」がエラーが少ないのでは無いかと思います。






