WordPress : 投稿一覧へスラッグを表示する

SEO調整の際、投稿一覧にスラッグを表示させたくなったので functions.php をカスタマイズして表示させたので、その方法を紹介します。

上記の画像のように、日本語がURLエンコードされてやたら長くなる、スラッグの入力し忘れも一目瞭然になります。

functions.php

//投稿、固定ページ一覧にスラッグ表示
function add_columns_slug($columns) {
  $columns['slug'] = "スラッグ";
  echo '<style>.fixed .column-slug {width: 10%;}</style>';
  return $columns;
}
function add_column_row_slug($column_name, $post_id) {
  if($column_name == 'slug') {
    $post = get_post($post_id);
    $slug = $post->post_name;
    echo esc_attr($slug);
  }
}
add_filter( 'manage_pages_columns', 'add_columns_slug');
add_action( 'manage_pages_custom_column', 'add_column_row_slug', 10, 2);
add_filter( 'manage_posts_columns', 'add_columns_slug' );
add_action( 'manage_posts_custom_column', 'add_column_row_slug', 10, 2 );

2つの関数を作り、2つ(pagesとpostsで違いますが、やることは同じ)のアクションフックへ適用しています。

add_columns_slug()は一覧ページで記事のスラッグを呼び出し、add_column_row_slug()は一覧ページへ呼び出したスラッグを表示しています。

CSSを指定している理由は、拡張されたカラムはデフォルトでは幅を25%も設定されており、そんなに幅はいらないので10%に上書きしています。