簡単なサイトマップページを生成できるsitemapショートコードの使い方

ショートコード
この記事は約2分で読めます。

Cocoonの独自機能でサイトマップを生成できるショートコードを追加しました。

これで、よほど凝ったサイトマップページを作成したい場合を除いて、サイトマッププラグインは不要になるかと思います。

\エックスサーバー開発のWordPressテーマ/
エックスサーバー開発のWordPressテーマ

sitemapショートコード

ショートコードの基本的な使い方は、こんな感じです。

[sitemap]

固定ページなどに上記ショートコードを入力して公開することで、以下のようなサイトマップページを手軽に作成することが可能です。

サイトマップ

pageオプション

このオプションは「固定ページへのリンクを表示するか」を制御できます。

入力例:page=0(固定ページへのリンクを表示しない)

デフォルト値:1(固定ページへのリンクを表示する)

singleオプション

このオプションは「投稿ページへのリンクを表示するか」を制御できます。

入力例:single=0(投稿ページへのリンクを表示しない)

デフォルト値:1(投稿ページへのリンクを表示する)

categoryオプション

このオプションは「カテゴリーページへのリンクを表示するか」を制御できます。

入力例:category=0(カテゴリーページへのリンクを表示しない)

デフォルト値:1(カテゴリーページへのリンクを表示する)

archiveオプション

このオプションは「月アーカイブページへのリンクを表示するか」を制御できます。

入力例:archive=1(月アーカイブページへのリンクを表示する)

デフォルト値:0(月アーカイブページへのリンクを表示しない)

入力例

sitemapショートコードのデフォルトは、以下のオプションになっているのと同義です。

[sitemap page=1 single=1 category=1 archive=0]

1が表示。0が非表示となるので、それぞれオプションを好みのものに変更してください。

表示例

サイトマップショートコードの表示例はこちら。

サイトマップ

コメント テーマの質問はフォーラムへ

  1. nyonyo より:

    思わず叫んでしまいました。
    プラグイン入れずに悩み続けていてよかったです!

    ちょっと他の件でブログ運営に悩んでいたのですが、また頑張ろうって思えました。
    ありがとうございました!

    • わいひら わいひら より:

      機能追加が、早速お役に立てたのであれば、追加した側からすれば、ものすごく嬉しいです。
      書き込みありがとうございます!

      • nyonyo より:

        早速使わせていただきました。
        正直なところ、フォーラムで質問を閉めた後もプラグインではない方法を模索していたのです。
        プラグインで済むような小さな悩みを解決していただいて、本当に嬉しいです。
        寒くなって来ましたので、どうぞご無理なさらずお過ごしくださいね。
        お返事もありがとうございました。

  2. timurinburand より:

    はじめまして。コクーンは私の大好きなプラグインの「ふきだし」や「リンクカード」があってとても重宝していたところです。初期設定で必ず通る「サイトマップ」まで登載されて三冠王ですね。コードを張ってアップデートを待っています。いつもありがたく使わせてもらっています。本当にありがとうございます。

タイトルとURLをコピーしました
'); /* ヘッダーの高さの変化分、paddingで調整しスクロール位置を止まらせる */ $("#header-fixed").css({ 'padding-top': `${threashold}px`, }); /* トップメニュータイプに変更する */ $("#header-container-in").removeClass('hlt-center-logo hlt-center-logo-top-menu').addClass("hlt-top-menu wrap"); $("#header-container").addClass("fixed-header"); $("#header-container").css({ 'position': 'fixed', 'top': '-100px', 'left': '0', 'width': '100%', }); const wpadminbar = document.getElementById('wpadminbar'); const headerContainerTop = wpadminbar ? wpadminbar.clientHeight : 0; $('#header-container').animate( { top: headerContainerTop, }, 500 ); } } /*固定ヘッダーの解除*/ function staticHeader() { if ($("#header-container").hasClass("fixed-header")) { /*センターロゴタイプに戻す*/ $("#header-container-in").removeClass("hlt-top-menu hlt-tm-right hlt-tm-small hlt-tm-small wrap").addClass(" hlt-center-logo"); $("#header-container").removeClass("fixed-header"); $("#header-container").css({ 'position': 'static', 'top': 'auto', 'left': 'auto', 'width': 'auto', }); /* ヘッダーの高さの戻る分、padding削除しスクロール位置を止まらせる */ $("#header-fixed").css({ 'padding-top': '0', }); $("#header-fixed").remove(); } } /* 境界値をヘッダーコンテナに設定 */ var threashold = $('#header-container').height(); var prevScrollTop = -1; var $window = $(window); var mobileWidth = 1023; $window.scroll(function() { var scrollTop = $window.scrollTop(); var s1 = (prevScrollTop > threashold); var s2 = (scrollTop > threashold); var w = $window.width(); /*スクロールエリアの位置調整*/ function adjustScrollArea(selector) { if ($(selector) && $(selector).offset()) { offset = $(selector).offset().top; h = $("#header-container").height(); pt = $(selector).css('padding-top'); if (pt) { pt = pt.replace('px', ''); } else { pt = 0; } if ((scrollTop >= offset - h) && (w > mobileWidth)) { if ((pt <= 1) && $("#header-container").hasClass('fixed-header')) { $(selector).css({ 'padding-top': h + 'px', }); } } else { if (pt > 0) { $(selector).css({ 'padding-top': 0, }); } } } } /*スクロール追従エリアの調整*/ function adjustScrollAreas() { adjustScrollArea('#sidebar-scroll'); adjustScrollArea('#main-scroll'); } /*固定ヘッダーのスタイル決め*/ function adjustFixedHeaderStyle(s1, s2, w, scrollTop, mobileWidth) { if (s1 ^ s2) { if (s2 && (w > mobileWidth)) { stickyHeader(); } } /* 境界値に達したら固定化 */ if (scrollTop <= threashold || w <= mobileWidth) { staticHeader(); } } adjustFixedHeaderStyle(s1, s2, w, scrollTop, mobileWidth); adjustScrollAreas(); prevScrollTop = scrollTop; }); /*ウインドウがリサイズされたら発動*/ $window.resize(function () { /*ウインドウの幅を変数に格納*/ var w = $window.width(); if (w <= mobileWidth) { /*モバイル端末の場合*/ staticHeader(); } else { /*パソコン端末の場合*/ var scrollTop = $window.scrollTop(); if (scrollTop >= 50) { stickyHeader(); } } }); })(jQuery);