Revision 4 as of 2016-11-01 08:35:15

Clear message
Locked History Actions

wordpress/sluginpagelist

スラッグを固定ページ一覧に表示

これができないと大変不便と思うのだが、なぜもともとこの機能が無いのだろうか?

検索するとすぐ見つかるが、以下のコードを使用中のテーマのfunctions.phpの最後に追加する。 twentytwelveを使用している場合は、wp-content/themes/twentytwelve/function.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_pages_columns', 'add_page_columns_name');
add_action( 'manage_pages_custom_column', 'add_page_column', 10, 2);

スラッグ表示位置を変える

右端だと見にくいため、タイトルの右側にする。参考は以下。

カテゴリ、コメントは不要なので削除。

function add_page_columns_name($cols) {
  // cb, title, author, categories, tags, comments, date
  $author = $cols['author'];
  $categories = $cols['categories'];
  $tags = $cols['tags'];
  $comments = $cols['comments'];
  $date = $cols['date'];
  unset($cols['author']);
  unset($cols['categories']);
  unset($cols['tags']);
  unset($cols['comments']);
  unset($cols['date']);
  $cols['slug'] = "スラッグ";
  $cols['author'] = $author;
  //$cols['categories'] = $categories;
  $cols['tags'] = $tags;
  //$cols['comments'] = $comments;
  $cols['date'] = $date;
  return $cols;
}
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_pages_columns', 'add_page_columns_name');
add_action( 'manage_pages_custom_column', 'add_page_column', 10, 2);