ちょっとしたアイデアを思いついたのでやってみました。Wordpressの投稿記事の文字数は一体いくつかを調べる方法です。
多くの場合は、Wordpress管理画面の投稿記事下部にリアルタイムで出て来るのを見ている方も多いと思います。
このリアルタイムカウントはそれそれでいいのですが、今回欲しかったのは「ブログ投稿の文字数」をざっと調べる方法です。そういえば、1記事あたりどれくらい書いているかなという時に使えるかなというところです。
MySQLからSQLを発行して文字数を調べる
結論的には、WordpressはMySQLというデータベースが使われているので、そのMySQLにログインして調べるというアイデアです。他にもあるかもしれませんが、これが一番はやいかなと。あえていえば、Wordpressプラグインみたいなもので管理画面一覧で文字数表示とかはあるかもですが、この場合この文字数一覧をどう出すかというとphpとか何か仕込む必要があるかなと思うのでこれはやっていません。
手順としては以下のようになります。
1.MySQLにログインする
2.SQLを発行して、投稿記事のデータを取得する。とくに投稿本文。
3.そのSQL結果をエクスポートする。
4.Excelで開いて文字数を調べる
ということになります。1つずつ見ていきましょう。
1.MySQLにログインする
僕の場合はロリポップですが、ロリポップなら会員ページにログインして「WEBツール」→「データベース」に行き、該当するデータベースを選びます。当然ですが、これらのデータベース自体は直に触るため、データベースってなんだろうとか不安な人はまずおすすめしません。もちろん手順通りやれば壊れることはありませんが、自己責任ですので。
ちなみに1データベースのみしかない人はいいのですが、僕は複数データベースがあり、今回は本ブログが格納されているデータベースを選びました。ちなみにどのデータベースか分からない場合は、Wordpressにあるwp-config.phpに記載があるので確認されるといいでしょう。
ログインには別途データベースパスワードが必要です。これらはWordpressを設置する時に設定しているので割愛します。
2.SQL発行をして、投稿データを取得する
色々調べてみたんですが、結果的にこのクエリ(SQL命令のこと)でいけました。
SELECT ID, post_title,post_content, CHAR_LENGTH(post_content) FROM `wp_posts`
WHERE `post_status` = 'publish'
AND `post_type` = 'post'
SELECTでは取得するカラムを指定しています。FROMでは wp_postsというWordpressが管理するwp_postsテーブルからデータ取ってきます。
WHEREでは2条件入れていて、post_statusは公開したものを、post_typeは投稿記事を指しています。post_typeは例えば更新差分みたいなリビジョンとかあった気がします。
SELECTするカラムは、ID、投稿名、投稿記事内容、投稿内容文字数としてみました。CHAR_LENGTHとは文字数を取得する関数です。ただ後でExcelでLEN関数などとすればなくてもいいですが、一応取得してみたというところです。
このSQLクエリをどこに貼り付けるか分からない方は利用が厳しいですが、ロリポップであればphpMyAdminというサービスを利用しているはずですので、上のメニューにある「SQL」を選んで、SQLが書かれている欄に貼り付けて、実行すればオッケーです。
注意点はWHERE句にあるpost_statusはなぜか「`」というグレイブ・アクセントというのでしょうか、シングルクォーテーションではないので注意が必要です。キーボードでいえば「@」のところにあるやつです。コピペしたほうが多分問題ないかと思います。
3.そのSQL結果をエクスポートする。
SQLを実行すると結果が得られます。
例えば、僕の場合であれば、
Showing rows 0 – 29 (487 total, クエリの実行時間 0.0045 秒)
みたいな感じで出てきます。487とは本ブログの公開記事数なのでオッケーという感じです。ご自身のWordpressサイトのブログ投稿数と一致していればオッケーですね。
エクスポートは、結果画面の下部に「クエリ結果操作」というメニューがあり、そこの「エクスポート」を押します。
エクスポート方法は簡易、フォーマットをCSVなど好みで、エンコーディングもSJISとかでオッケーでしょう。それで実行します。
そうすると、CSVファイルがダウンロードされます。僕の場合6MBほどありました。
4.Excelで開いて文字数を調べる
CSVはExcelなどで編集できるのでそのまま開けばいいかと思います。
上のSQLであれば、C列に投稿記事内容がタグ付きで、D列に文字数が入ってきます。本来であれば、タグは取った方が正確でしょう。例えばAタグなどはURLリンクであったり、また商品紹介タグなどがあると結構文字数が膨らむからです。
10秒くらいこのタグだけ取る方法はないかなと思ったのですが、リンクだけで構成する記事があるわけでもないし、まあいいかと計算はやめました。気になる方は考えてみて下さい。
タグ込みではありますが、これで本ブログの文字数が出てきました。
本ブログの文字数は?
合計は2,735,229文字で、270万文字でした。これ間違ってるんじゃない?と思ったんですが、487記事で割ると、1記事あたり約5616文字となり、仮にURLリンクなどが1記事3つくらいあっても2万文字とかなので、ものの数値になりません。毎回5600文字書いているとかはないと思うので、2割くらいはタグなどとしても、4000文字くらいは1記事ありそうです。そうしても、約194万文字です。
200万文字って多いと思いきや、新書は1冊で8万から12万文字なので、あるテーマに沿って書かれているわけでもないので、こんなものかなというところです。
ちなみに今回の記事は文字数約3,000文字です。
おわりに
文字数が分かるとメリットがあるかどうかですが、とくにないです(笑)ただ、文字数を知ることでどれくらい書いているのか、自分のバロメーターとして何か知ることが出来るかなと思ったところですね。
あと、SQLで調べられそうと思いついたアイデアだったので出来てよかったかなと思います。Wordpressを使っていてやりたいことがある時に、仮にSQLまたはMySQLあたりの知識や経験がないとこれらはちょっとやりたくないというか、やる気はしないのではないかなと思いました。
ただ今回のケースであれば、ログインさえしてもらえれば、あとはSQLを貼り付けるだけなので問題なくいけると思っています。
今回ちょっといじってみて、postsデータの理解が少しだけ深まったのと、思った以上にWordpressはデータを色々持っているなあというところですね。