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」の環境で行いました。