賢威7.0

賢威7の管理画面に個別記事のPV数一覧を表示する方法

admin-post-column-thumbnail

今回の記事では、賢威7の投稿一覧の画面に「それぞれの投稿の閲覧数」を表示させる方法をご紹介します。

PV数を一覧表示で確認できるので、どのようなコンテンツを作っていくか、どんなタイミングで記事を公開するのか、などサイトの運営方針を考える上で意外と役立つんじゃないかと思います。

カスタマイズ前

↓ カスタマイズ前の状態

admin-post-column-before

カスタマイズ後

投稿一覧にpv数を表示

↓ 少し見えづらいかもしれませんが、それぞれの記事の閲覧数を表示しています。

admin-post-column-after
pv数の位置を入れ替え
admin-post-column-after-2

[ad]

また、今回はPHPファイルを編集するので、バックアップも忘れずに取ってから作業するようにして下さい。
画面が真っ白になることもあるので、小さいものでもPHPコードのミスには要注意です。

1. functions.php ファイルを編集

管理画面に表示される項目は functions.php に書かれているので、今回のカスタマイズでは functions.php を編集して、管理画面にpv数を表示させていきたいと思います。

functions.php の1464行目付近に、

function manage_posts_columns()

という関数と、

function add_column()

という関数がありますが、この2つの関数で投稿一覧の画面をカスタマイズしているので、、、

(「投稿一覧に、項目を追加する」というコメントが目印です)

//---------------------------------------------------------------------------
//  投稿一覧に、項目を追加する
//---------------------------------------------------------------------------
function manage_posts_columns($columns) {       
        if (isset($_GET['post_type']) and ($_GET['post_type'] == "keni_cc")) {
            $columns['postid'] = "ショートコード";
        } else {
            $columns['column'] = "カラム数";
            $columns['h1'] = "h1";
            $columns['thumbnail'] = "アイキャッチ画像";
        }
        return $columns;
}
function add_column($column_name, $post_id) {
    if ($column_name == 'postid') {
        echo "[cc id=".$post_id."]";
    } else if ($column_name == 'column') { 
        pageLayoutView($post_id);
    } else if ($column_name == 'h1') { 
        echo get_h1_keni($post_id);
    } else if ($column_name == 'thumbnail') {
        $thumbnail_id = get_post_thumbnail_id($post_id);
        $image = wp_get_attachment_image_src($thumbnail_id, "thumbnail");
        if (isset($image[0])) {
            echo '<img src="'.$image[0].'" />';
        } else {
            echo "—";
        }
    } else if  ( $column_name == 'socialimg' ) {
        echo '<input id="upload_image" type="text" size="36" name="Cat_meta[img]" value="<?php if(isset ( $cat_meta[\'img\'])) echo esc_html($cat_meta[\'img\']) ?>" /><br />';
    echo '画像を追加: <img src="images/media-button-other.gif" alt="画像を追加"  id="upload_image_button" value="Upload Image" style="cursor:pointer;" />';
    }
}

(この2つの関数を)下のコードで置き換えます。

//---------------------------------------------------------------------------
//  投稿一覧に、項目を追加する
//---------------------------------------------------------------------------
function manage_posts_columns($columns) {       
        if (isset($_GET['post_type']) and ($_GET['post_type'] == "keni_cc")) {
            $columns['postid'] = "ショートコード";
        } else {
            $columns['column'] = "カラム数";
            $columns['h1'] = "h1";
            $columns['thumbnail'] = "アイキャッチ画像";
            $columns['pv'] = "pv数";
        }
        return $columns;
}
function add_column($column_name, $post_id) {
    if ($column_name == 'postid') {
        echo "[cc id=".$post_id."]";
    } else if ($column_name == 'column') { 
        pageLayoutView($post_id);
    } else if ($column_name == 'pv') {
        viewPV();
    } else if ($column_name == 'h1') { 
        echo get_h1_keni($post_id);
    } else if ($column_name == 'thumbnail') {
        $thumbnail_id = get_post_thumbnail_id($post_id);
        $image = wp_get_attachment_image_src($thumbnail_id, "thumbnail");
        if (isset($image[0])) {
            echo '<img src="'.$image[0].'" />';
        } else {
            echo "—";
        }
    } else if  ( $column_name == 'socialimg' ) {
        echo '<input id="upload_image" type="text" size="36" name="Cat_meta[img]" value="<?php if(isset ( $cat_meta[\'img\'])) echo esc_html($cat_meta[\'img\']) ?>" /><br />';
    echo '画像を追加: <img src="images/media-button-other.gif" alt="画像を追加"  id="upload_image_button" value="Upload Image" style="cursor:pointer;" />';
    }
}

これで管理画面の投稿一覧に「pv数」というカラムが表示されました。
それぞれの記事ごとに投稿数が表示されています。

admin-post-column-after

↓ 拡大
admin-post-column-after-1

1-1. 記事を全件表示するには

最初の状態では投稿一覧のページには20件の記事が表示されるようになっていますが、実はこの表示件数、お好みの表示件数に変更することができます。

投稿一覧ページの右上にある「表示オプション」を選択すると、、、

wordpress-post-php

「ページごとに表示する項目数」が選択できるので、ここに100件など、投稿数よりも多い数を入力すれば、記事を全件表示することが出来ます。

wordpress-post-php-2

(※)ちなみに、「カラム」についても表示オプションにあるチェックを外せば、非表示にすることが出来ますが、読み込み自体はされるので、読み込み速度をできるだけ早くしたいという場合には、下の記事のような方法で「カラム」を非表示にするのがオススメです。

管理画面の投稿一覧に表示される不要な項目を非表示にする方法:賢威7.0

2. PV数のカラムを移動する

今度はpv数カラムの順番を入れ替えてみましょう。
先ほどは一番後に(サムネイルの後に)pv数を表示させましたが、今度は「カラム数」の手前に表示させます。

↓ このような感じで順番を入れ替える
admin-post-column-after-2

先ほどの

function manage_posts_columns()

という関数を、以下のコードで置き換えます。

(※) $columns['pv'] = "pv数";の位置を入れ替えれば、お好みの順番でカラムを入れ替えることができます。

function manage_posts_columns($columns) {       
        if (isset($_GET['post_type']) and ($_GET['post_type'] == "keni_cc")) {
            $columns['postid'] = "ショートコード";
        } else {
            $columns['column'] = "カラム数";
            $columns['pv'] = "pv数";
            $columns['h1'] = "h1";
            $columns['thumbnail'] = "アイキャッチ画像";
        }
        return $columns;
}

上の画像のように順番を入れ替えることができました。
これで完成です!