【WordPress】投稿一覧ページに投稿本文の文字数を表示するカスタマイズ

【WordPress】投稿一覧ページに投稿本文の文字数を表示するカスタマイズ

「ブログ記事は大体〜文字くらい書いたほうがいい」的な話ありますよね。

僕は「あまり文字数は気にしていないですね」とは言っているものの、最低でも1,000文字くらいは書いたほうがいいかな〜とは思っています。

で、その文字数を投稿一覧ページで確認できたら便利かなぁと思って、WordPressの投稿一覧ページに投稿の文字数を表示するカスタマイズを考えてみました。

WordPressの投稿一覧画面に文字数を表示する

よっひー(@yosiakatsuki)です。

「文字数の少ない記事をリライトしよう!」みたいなときにきっと役立つ投稿一覧ページに本文の文字数を表示するカスタマイズをしてみようと思います。

投稿一覧から文字数を確認する

▲できあがりはこんな感じになります。

投稿の文字数がパッと確認できていい感じになりました。

投稿一覧に「文字数」列を追加するカスタマイズ

上記画像のように、投稿一覧ページに「文字数」列を追加するために、functions.phpに次のコードを追加します。

//「文字数」列の追加
function aktk_manage_posts_columns( $columns ) {
    $columns = array_merge( $columns, array( 'aktk_moji_count' => '文字数' ) );

    return $columns;
}

add_filter( 'manage_posts_columns', 'aktk_manage_posts_columns' );

//「文字数」列の中身
function aktk_manage_posts_custom_column( $column, $post_id ) {
    global $post;
    if ( 'aktk_moji_count' == $column ) {
        $post_content = strip_shortcodes( $post->post_content );
        $post_content = str_replace( array( "\r\n", "\r", "\n" ), '', $post_content );
        $post_content = preg_replace( '/<!--[\s\S]*?-->/', '', $post_content );
        $post_content = preg_replace( '/&\S+?;/', '_', $post_content );
        $post_content = wp_strip_all_tags( $post_content, false );
        $moji_cnt = mb_strlen( $post_content );
        echo number_format( $moji_cnt );
    }
}

add_action( 'manage_posts_custom_column', 'aktk_manage_posts_custom_column', 10, 2 );
表示オプションで列の表示ON-OFFを切り替える

コードが追加できたら、投稿一覧ページを開いて、「表示オプション」の中にある「文字数」にチェックを入れます!

注意点

このカスタマイズにはいくつか注意点があります。

  • 投稿画面の本文入力エリア下の文字数とは微妙に文字カウントが違うかもしれません。
    (なるべく同じになるように調整しましたが、全く同じ処理ではないので違いが出るかもしれません。)
  • 1ページ内に表示する件数が多いと動きがもっさりするかもしれません。
    (遅いと感じたら「表示オプション」から適宜表示件数を調整してください。)

まとめ

簡単に追加できるようにお試しプラグインのダウンロードリンクをnoteで公開しているので使ってみてください。

投稿一覧にカラムを追加していろいろ情報を表示できるとブログ運営がはかどりますね!

できればソートをかけられるようにもしたいので、後々機能追加してみたいと思います。

ちなみに、PHPのカスタマイズは安全なブログ運営のためにもローカル環境を用意しておくと安心です。

ではまた。

エックスサーバーが15周年記念キャンペーン&ドメインプレゼントキャンペーンを10月31日まで実施中!
» 月額900円(税抜)から、高速・多機能・高安定レンタルサーバー『エックスサーバー』