Locked History Actions

wordpress/sluginpagelist

※以下の変更の必要はない。Admin Columnというプラグインを使用すれば簡単。

https://www.nxworld.net/wordpress/wp-plugin-codepress-admin-columns.html

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

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

検索するとすぐ見つかるが、以下のコードを使用中のテーマの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);

さらにページ順を加え、列幅を変更する

固定ページ一覧でのページの表示順を指定するため「順序」フィールドを利用することにする。ドラッグドロップで簡単にできるプラグインもあるが、操作を間違えると面倒なので、1ページ1ページ順序値を入れることにする。 固定ページ一覧にて、この順序値を表示する。さらに列幅を調整する。参考は以下。

function add_page_columns_name($cols) {
  // cb, title, author, categories, tags, comments, date
  $cb = $cols['cb'];
  $title = $cols['title'];
  $author = $cols['author'];
  $categories = $cols['categories'];
  $tags = $cols['tags'];
  $comments = $cols['comments'];
  $date = $cols['date'];
  unset($cols['cb']);
  unset($cols['title']);
  unset($cols['author']);
  unset($cols['categories']);
  unset($cols['tags']);
  unset($cols['comments']);
  unset($cols['date']);
  $cols['order'] = "順";
  $cols['cb'] = $cb;
  $cols['title'] = $title;
  $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);
  } else if ($column_name == 'order') {
    $post = get_post($post_id);
    $order = $post->menu_order;
    echo attribute_escape($order);
  }
}
function my_admin_column_width() {
 echo '<style type="text/css">
   .column-order { text-align:right;   width: 30px !important; overflow:hidden }
   .chcek-column { text-align:center;  width: 100px !important; overflow:hidden }
   .column-title { text-align:left;    width: 300px !important; overflow:hidden }
   .column-slug  { text-align:left;    width: 100px !important; overflow:hidden }
   .column-author  { text-align:left;    width: 100px !important; overflow:hidden }
   .column-tags  { text-align:left;    width: 100px !important; overflow:hidden }
   .column-date  { text-align:left;    width: 100px !important; overflow:hidden }
 </style>';
}
add_filter( 'manage_pages_columns', 'add_page_columns_name');
add_action( 'manage_pages_custom_column', 'add_page_column', 10, 2);
add_action('admin_head', 'my_admin_column_width');