サイト内検索
Cocoonフォーラム
書き込みの前に以下の3点をご確認ください。
何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。
不具合・カスタマイズ対象ページのURL:
相談内容:
不具合の発生手順:
解決のために試したこと:
※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
環境情報の取得方法はこちら。
→ https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
→ https://wp-cocoon.com/theme-trouble/
フォーラム利用ガイドリンク
- フォーラムガイドライン
- よくある質問と答え(FAQ)
- サポート対象外のケース
- 原因不明の不具合用トラブルシューティング
- トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw)
- 真っ白画面でのエラーメッセージの確認方法
- ブラウザ環境チェックツール
- Cocoonカスタマイズ依頼
フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。
2025年5月1日 14:11
●回答
サイトマップのツリー表示はテーマLuxeritasの独自機能のようです。
https://thk.kanzae.net/wp/point/t295/
Cocoonはツリー表示しません。
https://wp-cocoon.com/sitemap-shortcode/
●プラグイン
PS Auto Sitemapのスタイル「ドキュメントツリー」が似た感じかと思います。
現在、プラグインはダウンロード停止となっています。
https://fujimotoyousuke.com/ps-auto-sitemap_wordpress/
●補足
カテゴリーをツリー表示し、各投稿を表示させる独自のショートコードとCSSで実現可能です。
ツリー表示するにあたり、投稿に複数カテゴリーを設定した場合の考慮が必要です。
サイトマップ自体、余り閲覧されなず、わざわざツリー表示する必要はないと思います。
わいひら reacted
トピックスターター 2025年5月1日 14:45
回答ありがとうございます。やはりルクセリタスの機能だったんですね…。
現在、縦軸で上から下に年代が下る年表のようなものをサイトのメインに据えたいと思っており、
ツリー構造のサイトマップが一番それに近かったので、もしCSSなどで実現できればそうしたいと思っています。
浅学で申し訳ないのですが、投稿していただいた画像のようなツリーは
どのようなコードで描かれているのでしょうか。
2025年5月1日 14:54
浅学で申し訳ないのですが、投稿していただいた画像のようなツリーは
どのようなコードで描かれているのでしょうか。
以下が参考になりませんか?
https://www.will3in.co.jp/frontend-blog/article/expression-sitemap-tree-with-css-only/
わいひら reacted
トピックスターター 2025年5月1日 15:59
ご教示ありがとうございます。
確かに上記HTMLとCSSを設定すると、罫線を使ったサイトツリーのようにはなりましたが、
こちらは投稿が増えたときに自動更新される機能はないですよね?
もしそうであれば、毎回手動で増やすとなると手間になってしまうので、
自動更新される方を優先し罫線デザインは諦めようと思いますが、
上記はお間違い無いでしょうか。
2025年5月1日 20:25
●答え
ショートコードsitemap_treeでツリー表示します。自己責任で願います。
functions.phpに追加。
// サイトマップをツリー形式で表示するショートコード
add_shortcode('sitemap_tree', function() {
$output = '<ul class="my-hierarchy">';
// 固定ページのツリー表示
$output .= '<li><strong>固定ページ</strong><ul>';
$pages = get_pages(['sort_column' => 'menu_order']);
$output .= sitemap_tree_render_pages($pages);
$output .= '</ul></li>';
// 投稿のカテゴリーと投稿のツリー表示
$output .= '<li><strong>投稿</strong><ul>';
$output .= sitemap_tree_render_categories(0);
$output .= '</ul></li>';
$output .= '</ul>';
return $output;
});
// 固定ページを階層構造で再帰的に表示
function sitemap_tree_render_pages($pages, $parent_id = 0) {
$output = '';
foreach ($pages as $page) {
if ($page->post_parent == $parent_id) {
$output .= '<li><a href="' . get_permalink($page) . '">' . esc_html($page->post_title) . '</a>';
$children = sitemap_tree_render_pages($pages, $page->ID);
if ($children) {
$output .= '<ul>' . $children . '</ul>';
}
$output .= '</li>';
}
}
return $output;
}
// カテゴリーと投稿を階層構造で再帰的に表示
function sitemap_tree_render_categories($parent_id) {
$output = '';
$categories = get_categories([
'parent' => $parent_id,
'hide_empty' => false
]);
foreach ($categories as $category) {
$output .= '<li>' . esc_html($category->name);
// 投稿を取得
$posts = get_posts([
'category' => $category->term_id,
'numberposts' => -1
]);
// 投稿または子カテゴリーがあればリスト表示
if (!empty($posts) || has_child_category($category->term_id)) {
$output .= '<ul>';
// 投稿をリスト化
foreach ($posts as $post) {
$output .= '<li><a href="' . get_permalink($post) . '">' . esc_html($post->post_title) . '</a></li>';
}
// 子カテゴリーを再帰的に処理
$output .= sitemap_tree_render_categories($category->term_id);
$output .= '</ul>';
}
$output .= '</li>';
}
return $output;
}
// 指定カテゴリーに子カテゴリーが存在するかチェック
function has_child_category($term_id) {
$children = get_categories([
'parent' => $term_id,
'hide_empty' => false
]);
return !empty($children);
}
style.cssに追加。
.article .my-hierarchy {
background-color: #000;
color: #eaeaea;
font-family: 'Menlo', 'Consolas', 'monaco', 'monospace', 'MS ゴシック', sans-serif;
padding: 15px;
overflow-x: auto;
white-space: nowrap;
}
.article .my-hierarchy::-webkit-scrollbar {
height: 10px;
}
.article .my-hierarchy::-webkit-scrollbar-thumb {
background-color: #ccc;
}
.article .my-hierarchy li {
list-style: none;
margin: 0;
padding-left: 1em;
position: relative;
}
.article .my-hierarchy ul {
margin: 0;
padding-left: 1em;
}
.article .my-hierarchy ul li:before {
background-color: #fff;
content: '';
height: 1px;
left: -0.5em;
margin: auto;
position: absolute;
top: 0.75em;
width: 1em;
}
.article .my-hierarchy ul li:after {
background-color: #fff;
bottom: 0;
content: '';
height: 100%;
left: -0.5em;
position: absolute;
top: 0;
width: 1px;
}
.article .my-hierarchy ul li:last-child:after {
height: 0.75em;
}
わいひら reacted
問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。
また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。
(CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。
フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。
最近の書き込みはこちら。
詳細なカスタマイズ依頼をするならこちら。




