本文へ移動

【SWELL】投稿一覧に「日・週・月・全」のアクセス数を表示する方法

SWELLブログ執筆: mameblog 編集部
当メディアは、Webデザインスクール「illume」を運営する株式会社design meが運営しています。記事内のリンクには広告が含まれる場合があります。
この記事でわかること
  • 無料テーマ「cocoon」と同じように投稿一覧で「日・週・月・全」のアクセス数を確認する方法
  • なるべくプラグインを使わないで、アップデートに左右されない
  • 5分くらいで完了したい

cocoonでは表示されてた…SWELLではできないの?

GA4を開くの面倒だからWordPressで確認したい!

筆者も以前コクーンを使用していて、アクセス数の伸び具合はWordPressで確認していました

SWELLは総PV数は表示されますが、「日・週・月・全」はデフォルトでは表示されないため、すこし不便に感じていました。

そこで筆者が SWELLでPV数を表示させた方法と注意点 を解説していきます。

SWELLの親テーマをさわらないためバグが起きるリスクは低いですが
実装される際は事前にバックアップを取るなど自己責任でお願いいたします

INDEX目次

    投稿一覧に「日・週・月・全」のアクセス数を表示するステップ

    • プラグイン「Code Snippets」をインストールする
    • スペニットにコードをコピペする
    • 表示されているか確認

    プラグイン「Code Snippets」って?

    「Code Snippets」とは、ウェブサイトのfunctions.phpファイルに簡単にコードを追加できるツールです。

    functions.phpファイルはWordPressのテーマの機能やカスタマイズを追加する重要なファイル

    このプラグインを使うと、親テーマを直接編集する必要がなく、子テーマを使用せずにカスタマイズが可能になります。

    テーマのアップデートによるカスタムコードの上書きを防ぐことができ、サイト管理が簡単になります。

    投稿一覧に「日・週・月・全」のアクセス数を表示する具体的な方法

    STEP
    プラグイン「Code Snippets」をインストールする

    WordPressの管理画面から、プラグインの検索に「Code Snippets」と入力します。

    今すぐインストール→有効化します。

    WordPressに「スペニット」が表示されます。

    STEP
    スペニットにコードをコピペする

    スペニット > 新規追加 > ファンクション を選択します。

    タイトルを「PV数の確認用」、白い枠内に以下のコードをコピペしてください↓

    function set_post_views($postID) {
        $count_keys = ['post_views_count', 'post_daily_views_count', 'post_weekly_views_count', 'post_monthly_views_count'];
        foreach ($count_keys as $count_key) {
            $count = get_post_meta($postID, $count_key, true);
            if($count == '') {
                $count = 0;
                delete_post_meta($postID, $count_key);
                add_post_meta($postID, $count_key, '0');
            } else {
                $count++;
                update_post_meta($postID, $count_key, $count);
            }
        }
    }
    
    function track_post_views($post_id) {
        if (!is_single()) return;
        if (empty($post_id)) {
            global $post;
            $post_id = $post->ID;
        }
        set_post_views($post_id);
    }
    add_action('wp_head', 'track_post_views');
    
    // リセット用のスケジュールイベントを作成
    if (!wp_next_scheduled('reset_daily_views')) {
        wp_schedule_event(time(), 'daily', 'reset_daily_views');
    }
    
    if (!wp_next_scheduled('reset_weekly_views')) {
        wp_schedule_event(time(), 'weekly', 'reset_weekly_views');
    }
    
    if (!wp_next_scheduled('reset_monthly_views')) {
        wp_schedule_event(time(), 'monthly', 'reset_monthly_views');
    }
    
    // 日ごとのPV数リセット
    add_action('reset_daily_views', 'reset_daily_views_count');
    function reset_daily_views_count() {
        global $wpdb;
        $wpdb->query("UPDATE $wpdb->postmeta SET meta_value = '0' WHERE meta_key = 'post_daily_views_count'");
    }
    
    // 週ごとのPV数リセット
    add_action('reset_weekly_views', 'reset_weekly_views_count');
    function reset_weekly_views_count() {
        global $wpdb;
        $wpdb->query("UPDATE $wpdb->postmeta SET meta_value = '0' WHERE meta_key = 'post_weekly_views_count'");
    }
    
    // 月ごとのPV数リセット
    add_action('reset_monthly_views', 'reset_monthly_views_count');
    function reset_monthly_views_count() {
        global $wpdb;
        $wpdb->query("UPDATE $wpdb->postmeta SET meta_value = '0' WHERE meta_key = 'post_monthly_views_count'");
    }
    
    // 管理画面にカラムを追加
    add_filter('manage_posts_columns', function($columns){
        $columns['view'] = 'View';
        return $columns;
    });
    
    // カラムにPV数を表示
    add_action('manage_posts_custom_column', function($column_name, $post_id){
        if ($column_name == 'view') {
            $daily_views = get_post_meta($post_id, 'post_daily_views_count', true);
            $weekly_views = get_post_meta($post_id, 'post_weekly_views_count', true);
            $monthly_views = get_post_meta($post_id, 'post_monthly_views_count', true);
            $total_views = get_post_meta($post_id, 'post_views_count', true);
    
            echo '日:' . ($daily_views ? $daily_views : '0');
            echo '<br />';
            echo '週:' . ($weekly_views ? $weekly_views : '0');
            echo '<br />';
            echo '月:' . ($monthly_views ? $monthly_views : '0');
            echo '<br />';
            echo '全:' . ($total_views ? $total_views : '0');
        }
    }, 10, 2);
    
    // ウィークリーとマンスリーのスケジュールを追加
    add_filter('cron_schedules', 'custom_cron_schedules');
    function custom_cron_schedules($schedules) {
        $schedules['weekly'] = array(
            'interval' => 604800,
            'display' => __('Once Weekly')
        );
        $schedules['monthly'] = array(
            'interval' => 2592000,
            'display' => __('Once Monthly')
        );
        return $schedules;
    }
    

    変更を保存 > 有効化 します。

    STEP
    表示されているか確認

    有効化した直後は、数字は「0」です。

    投稿ページを表示して数字が増えないときは…

    スマホ、他のパソコン、別プロファイル、シークレットウィンドウなどで投稿を表示して、数字が増えるか確認してください。

    まめ

    お疲れさまでした…!
    これで作業は完了です◎

    まとめ

    SWELLの投稿一覧に「日・週・月・全」のPV数を表示する方法を紹介しました。

    プラグイン1つ追加+コードのコピペで実装できるので、cocoonのPV数に慣れていたかたはぜひ参考にしてください。

    あわせて読みたい…ブログ運営について

    関連する学習コンテンツ

    記事の前提になる基礎は、無料の学習コンテンツで順番に学べます。

    学習コンテンツの目次を見る →

    関連記事

    前後の記事

    目次

      \ スクールが気になったら、まずはLINEで /

      公式LINE登録で、3大特典をプレゼント

      無料相談(Zoom・30分)の予約もLINEから。勧誘なし・ブロックはいつでもOKです。

      FOR BUSINESS

      法人向け「AI×デザイン」研修

      生成AIを取り入れた制作ワークフローを、半日〜2日のカスタム研修でチームに導入。デザイナー以外の職種の方にも対応します。

      研修について相談する

      オンライン・対面どちらも可 / お見積り無料

      LINE登録で3大特典
      LINE登録で3大特典スクール詳細
      PR バナー
      公式LINEで無料相談 + ロードマップPDFプレゼント中 LINE友だち追加