WordPress 固定ページ一覧に「パス」列を追加する方法(Admin Columns活用)

WordPress の管理画面で固定ページ一覧を見たとき、標準では「タイトル」「日付」などの基本情報しか表示されません。
しかし運営していると、「このページのパス(/contact/ や /contact/complete/)」を一覧画面で確認したい場面があります。

今回は Admin Columns プラグイン のフックを利用して、固定ページ一覧に「パス」列を追加する方法をご紹介します。


Admin Columns とは?

Admin Columns は、管理画面の投稿・固定ページ・カスタム投稿タイプの一覧に表示するカラムを自由にカスタマイズできるプラグインです。
ドラッグ&ドロップで並び替えたり、独自の列を追加したりと非常に便利です。

ただし「パス」列は標準では用意されていないため、少しコードを追加して拡張します。


実装の流れ

  1. フックで「パス」列を 列候補 として登録
  2. ac/column/value フックで 値を出力する処理 を追加
  3. 管理画面の Admin Columns 設定画面から「パス」列を追加して保存

コード例

以下を functions.php(または専用プラグイン)に追加します。

<?php
/**
 * Admin Columns で固定ページに「パス」列を追加する
 */

// 1. 列候補として「パス」を登録
add_filter( 'ac/column/custom', function( $columns, $post_type ) {
    if ( $post_type === 'page' ) {
        $columns['page_path'] = 'パス';
    }
    return $columns;
}, 10, 2 );

// 2. 「パス」列に表示する内容を定義
add_filter( 'ac/column/value', function( $value, $id, $column ) {
    if ( 'page_path' === $column->get_name() ) {
        $post = get_post( $id );

        // 親ページを考慮して階層付きパスを生成
        $ancestors = get_post_ancestors( $id );
        $ancestors = array_reverse( $ancestors );

        $path = '';
        foreach ( $ancestors as $ancestor_id ) {
            $ancestor = get_post( $ancestor_id );
            $path .= $ancestor->post_name . '/';
        }
        $path .= $post->post_name . '/';

        return '/' . $path;
    }
    return $value;
}, 10, 3 );

管理画面で列を有効化

上記コードを入れただけでは自動的に一覧に出るわけではありません。
Admin Columns の設定画面で、列を有効化する必要があります。

  1. 管理画面のメニューから
    設定 > Admin Columns にアクセス
  2. 投稿タイプ「固定ページ」を選択
  3. 「列を追加」ボタンをクリック
  4. 追加候補に「パス」が表示されるので選択
  5. 設定を保存

これで固定ページ一覧に「パス」列が追加されます。


出力結果の例

設定が完了すると、固定ページ一覧に以下のようにパスが表示されます。

  • /contact/
  • /contact/complete/
  • /about/company/

まとめ

  • Admin Columns は管理画面の一覧表示をカスタマイズできる便利なプラグイン
  • ac/column/custom で列を候補として追加
  • ac/column/value で値を定義
  • 最後に設定画面から列を有効化して保存する必要がある

運営サイトがページ数・階層ともに増えてくると、パスを一覧で確認できるだけで作業効率が大きく改善します。
管理画面をより便利にしたい方は、ぜひ試してみてください。

コメント

タイトルとURLをコピーしました