サイトマップを作成して、呼び出す方法はいくつかあります。固定ページのテンプレートを利用する方法が、多くのサイトで紹介されています。
ここでは、前回の投稿で書いたショートコードで呼び出す方法を取りたいと思います。
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「チェック無し」がエラーが少ないのでは無いかと思います。