投稿一覧や固定ページ一覧にソート付きカラムを追加する方法

公開日:

投稿一覧や固定ページ一覧にソート付きカラムを追加する方法

WordPressの管理画面カスタマイズの備忘録。

投稿記事や固定ページの一覧にカラム(タイトル、日時..など)が表示されています。
ここに「スラッグ(slug)」のカラムを追加したい!と思ったので追加方法の備忘録。

いきなり困った!「ソート」させるには?

色々な方が投稿一覧のカラム追加方法を紹介しています。

↓参考にしたのはこちら
■NxWorld:
管理画面の投稿一覧や固定ページ一覧などに「スラッグ」カラムを表示する方法

■IMAGINATION DESIGN BLOG:
WordPress:投稿一覧にサムネイル・ID・スラッグ・文字数の項目を追加する方法

しかし、このままではカラムは追加されるけどソートができない。どうしても「ソートがしたい!」という要望があったので調べてみると…ありました。

「manage_edit-[ポストタイプ]_sortable_columns」ってのを使えばいいらしいです。

  • 投稿一覧では「manage_edit-post_sortable_columns」
  • 固定ページでは「manage_edit-page_sortable_columns」

を使うって感じです。ということで実際のソースでは…

投稿一覧にスラッグを追加する

「投稿一覧」に追加するには、以下をfunctions.phpに記述します。

/* 投稿一覧にスラッグ追加 */
function add_posts_columns_slug($columns) {
	$columns['slug'] = 'スラッグ';
	return $columns;
}
function add_posts_columns_slug_row($column_name, $post_id) {
	if( 'slug' == $column_name ) {
		$slug = get_post($post_id) -> post_name;
		echo $slug;
	}
}
add_filter( 'manage_edit-post_sortable_columns', 'add_posts_columns_slug' );
add_filter( 'manage_posts_columns', 'add_posts_columns_slug' );
add_action( 'manage_posts_custom_column', 'add_posts_columns_slug_row', 10, 2 );

固定ページ一覧にスラッグを追加する

こっちは「固定ページ一覧」です。以下をfunctions.phpに記述します。

/* 固定ページ一覧にスラッグ追加 */
function add_page_columns_name($columns) {
    $columns['slug'] = "スラッグ";
    return $columns;
}
function add_page_column($column_name, $post_id) {
    if( $column_name == 'slug' ) {
        $post = get_post($post_id);
        $slug = $post->post_name;
        echo attribute_escape($slug);
    }
}
add_filter( 'manage_edit-page_sortable_columns', 'add_page_columns_name' );
add_filter( 'manage_pages_columns', 'add_page_columns_name');
add_action( 'manage_pages_custom_column', 'add_page_column', 10, 2);

もちろんスラッグ以外も追加可能

$columns[‘slug’]のところを、変えればスラッグ以外も追加可能です。
例:IDを追加する場合、$columns[‘postid’]

ちなみに「WordPress 3.9.1」の環境で行いました。

最近の更新記事