WordPress の固定ページは階層構造(親子関係)を持てますが、管理画面の一覧では「完全なスラッグ(URL構造)」が確認できないのが地味に不便です。
例えば以下のような構造の場合:
/about/company/profile
管理画面では「profile」しか表示されず、
どの階層に属しているのか直感的に分かりません。
この記事では、固定ページ一覧に階層付きスラッグ(フルパス)を表示する方法を解説します。
なぜ必要か
このカスタマイズは以下のケースで特に有効です。
- URL設計を厳密に管理している
- 多階層のページ構造を扱っている
- API連携やルーティングでスラッグを使う
- SEO上のURL構造を確認したい
実装の概要
やることはシンプルです。
- 管理画面にカラムを追加
- 階層を含めたスラッグを取得
- 一覧に表示
完成コード
以下を functions.php または独自プラグインに追加してください。
<?php
/**
* 固定ページ一覧に「階層スラッグ」カラムを追加
*/
/**
* カラム追加
*/
function add_page_slug_column($columns) {
$columns['hierarchical_slug'] = 'スラッグ(階層)';
return $columns;
}
add_filter('manage_pages_columns', 'add_page_slug_column');
/**
* カラム内容表示
*/
function render_page_slug_column($column, $post_id) {
if ($column === 'hierarchical_slug') {
echo esc_html(get_full_slug($post_id));
}
}
add_action('manage_pages_custom_column', 'render_page_slug_column', 10, 2);
/**
* 階層スラッグ取得関数
*/
function get_full_slug($post_id) {
$post = get_post($post_id);
if (!$post) return '';
$slug = $post->post_name;
$parents = [];
$parent_id = $post->post_parent;
while ($parent_id) {
$parent = get_post($parent_id);
if (!$parent) break;
array_unshift($parents, $parent->post_name);
$parent_id = $parent->post_parent;
}
return implode('/', array_merge($parents, [$slug]));
}
表示イメージ
このコードを適用すると、管理画面の固定ページ一覧に以下のようなカラムが追加されます。
スラッグ(階層)
-------------------------
about
about/company
about/company/profile
一目でURL構造が分かるようになります。
処理のポイント解説
1. 親ページをさかのぼる
while ($parent_id) {
このループで、親ページを順番に取得しています。
2. 順序を正しく保つ
array_unshift($parents, $parent->post_name);
array_unshift を使うことで、
親 → 子 → 孫
の順序を維持しています。
3. 最終的に連結
implode('/', array_merge($parents, [$slug]));
これにより
about/company/profile
のような完全なスラッグになります。
応用パターン
URLとして表示したい場合
return home_url('/' . implode('/', array_merge($parents, [$slug])) . '/');
投稿タイプを限定する
固定ページ以外にも対応したい場合:
add_filter('manage_posts_columns', 'add_page_slug_column');
並び替え対応(上級)
カラムをクリックしてソートしたい場合は、meta_query やカスタムフィールド化が必要になります。
注意点
- 大量ページ(数千件)ある場合は処理コストに注意
- キャッシュ(transient)を使うと高速化可能
- 階層が深いほどループ回数が増える
まとめ
WordPressの標準管理画面では確認しづらい「階層スラッグ」ですが、
少しのカスタマイズで視認性は大きく改善できます。
特に以下のような方にはおすすめです。
- URL設計を重視している
- 大規模サイトを運用している
- 開発・運用を効率化したい



コメント