WordPressの投稿管理リストに「タイトル・本文の文字数カラム」を表示する方法

タイトルと本文の文字数を確認するカスタマイズ

WordPressの投稿で、タイトル文字数を気にして書く人は多いかと思います。

というのも、「Google検索結果のタイトルに表示される文字数」は限られているので「どのように見えるか?」を推測する上で重要な数値となるからです。

あと、「自分は今日どれくらいの長さを書いたのだろうか?」と「本文文字数」を見る人もいるかと思います。

これらの文字数を頻繁に確認する場合は、以下のように管理画面から一覧で見れると便利です。

投稿管理テーブルから文字数の確認

ということで以下では「タイトル」と「本文」の文字数を「投稿管理リスト(テーブル)」にカラムとして表示させるカスタマイズ方法を紹介します。

スポンサーリンク
レクタングル(大)広告

主な手順

文字数を表示する主な手順はこちら。

  1. functions.phpにコードを貼り付ける

基本的に、1回のコピペのみでカスタマイズできます。

functions.phpにコードを貼り付ける

まずは、子テーマのfunctions.phpに以下のコードを貼り付けます。

//カラムの挿入
add_filter( 'manage_posts_columns', function ($columns) {
  //文字数表示
  $columns['word-count'] = '文字数';

  return $columns;
} );

//カラムの内容
add_action( 'manage_posts_custom_column', function ($column_name, $post_id) {

  //文字数表示
  if ( 'word-count' == $column_name ) {
    //テーマで設定されているサムネイルを利用する場合
    $post = get_post($post_id);
    $title_count = mb_strlen(strip_tags($post->post_title));
    $content_count = mb_strlen(strip_tags(do_shortcode($post->post_content)));
    $thum = ' 題:'.$title_count.'<br>'.
            '本文:'.$content_count;
  }

  if ( isset($thum) && $thum ) {
    echo $thum;
  }
} , 10, 2 );

//カラム幅を整える
add_action('admin_print_styles', function () {
  echo '<style>
  /*記事一覧の文字数幅*/
  .column-word-count{
    width:76px;
  }
  </style>'.PHP_EOL;
});

タイトル、本文ともmb_strlen関数を用いて文字数を取得しています。

ここで注意点。本文はdo_shortcode関数を用いてショートコードを展開しています。ですので、ショートコード実行後の文字数を返す仕様にしています。

なので、「ショートコードは実行させたくない」という場合はdo_shortcode関数を取り除く必要があるかと思います。

スタイルの調整部分

単にカラムを追加しただけでは、投稿一覧画面では以下のように「デフォルトのカラム幅」で表示されます。

スタイリングさえていない文字数カラム

上記の「文字数」カラムは、内容の割には幅を取りすぎます。

なので、admin_print_stylesフック部分においてカラム幅を調整しています。

/*記事一覧の文字数幅*/
.column-word-count{
  width:76px;
}
幅は好みで変更してください。

動作確認

カスタマイズ実装後の「投稿リスト(テーブル)」がこちら。

カラム幅を調整した文字数表示エリア

WordPressは、管理画面の「オプション」機能から「カラムの表示切り替え」も可能です。

文字数カラムの表示切り替え

「文字数」のチェックを外すと、カラムが非表示になります。

文字数カラムを非表示にした状態

「カスタマイズしたけど常に表示させておきたくない」なんて場合は、オプションから非表示にしておくとよいかと思います。

まとめ

こんな感じで、PHPコードを1回コピペするだけで、管理画面から「タイトル」と「本文」の文字数を手軽に知ることが出来るようになります。

タイトル・本文文字数は、ビジュアルエディター等からみることもできる場合(※)がありますが、一覧画面でまとめて確認できると、いろいろ捗るケースもあるかと思います。

※タイトル文字数はテーマやプラグインで対応している場合