WordPress管理画面に経過日数を新規追加する

WordPressの管理画面のネタです。

管理画面でとりわけ投稿一覧画面を見ることが多いのですが、そこに記事の「作成日付」でなく「経過日数」があると嬉しいなと思いました。もちろん、作成日付を見て、現在日時を確認すればもちろん分かります。

ただその計算が手間なのと、一発で概ねの経過日数が分かれば、例えば1週間、1ヶ月などの単位でざっくりとどれくらい伸びたか記事単位で分かるので便利だなと思ってやってみました。

WordPressの管理画面をカスタマイズしたい人の参考になれば嬉しいです。

WordPressで管理画面に経過日数を追加する

結論的にはfunctions.phpをいじります。バックアップを取ってやってみてください。

完成したコードはこちらです。

//作成者の欄を非表示
function custom_columns($columns) {
        unset($columns['author']);
        return $columns;
}
add_filter( 'manage_posts_columns', 'custom_columns' );

//新規項目を追加
function manage_posts_columns($columns) {
    $columns['pastdays'] = "経過日数";
    return $columns;
}
function add_column($column_name, $post_id) {
    if( $column_name == 'pastdays' ) {
        //echo attribute_escape(get_post_meta($post_id, 'pastdays', true));

		echo human_time_diff(get_post_time('U', true));
    }
}
add_filter( 'manage_posts_columns', 'manage_posts_columns' );
add_action( 'manage_posts_custom_column', 'add_column', 10, 2 );

phpコードなので、<?php ~ ?>の中に入れる必要はもちろんあります。

作成者の欄を非表示は、そもそも作成者は本ブログは一人で回していて誰か他の人がいるわけでもないので非表示にしました。この場合の非表示とは管理画面の表示/非表示からも出なくなるので、ばっさり消したい時におすすめです。

本題の経過日数は、新規項目の追加とコメントしたところになります。

「経過日数」自体は、human_time_diff()関数で取得している形になります。この表示自体の精度はざっくりという感じで、例えば1日から7日はそのまま出ますが、次の表示は1週間、2週間、3週間、4週間、1ヶ月、2ヶ月・・・という感じです。つまり30日経過したら1ヶ月であるとか、そのあたりはざっくりという感じですので、ほぼ経過日数が同じでも一週間単位で表示が異なるというところはご愛嬌という感じです。

他の改造ポイントとして、経過日数ごとにソートするなどですが面倒なのでやっていません。デフォルトは作成日付順なわけですがその時に、ぱっと経過日数が直観的にわかればよかったというところでした。

参考にしたサイト

 

 

 

記事の経過日数 と 古い記事に注意書き を表示してみる | WordPressに感謝だ!

記事の経過日数 と 古い記事に注意書き を表示してみる | WordPressに感謝だ!

 

上記サイトを参考にしました。ありがとうございます。先達の知恵はあらまほしきことなりですね。

おわりに

管理画面のカスタマイズなので、ユーザーが見る側ではありません。ただ管理画面をいじっていくと、より使いやすくなるので、経過日数以外に何か表示できないか、こんな指標を入れられないだろうか、そういうのは基本的にwordpress関数とphpをいじればある程度は出来るということになります。

自分のサイトを見る時に何を見たらいいか、どれを重視しているか。そういう生きた管理画面になると面白いと思うのでぜひ活用のヒントにしてみてください。

筆者プロフィール

シゴトクリエイター 大橋 弘宜
シゴトクリエイター 大橋 弘宜
「シゴクリ」運営者。アイデアの力でお客様に貢献するゼロイチ大好きアイデアマン。ビジネスアイデア相談実績等は200超を超える。好きな言葉は三方良し。詳しい自己紹介仕事実績も合わせてご覧ください。お仕事メニューお問い合わせはお気軽にどうぞ。