管理人のための記事一覧のPV表示の方法を考えました

Simplicityの特徴 › フォーラム › テーマファイルのカスタマイズに関する質問など › 管理人のための記事一覧のPV表示の方法を考えました

3件の返信スレッドを表示中
  • 投稿者
    投稿
    • #52627
      Mori
      ゲスト

      いつもお世話になっています。
      サーバー負荷のために、Popular Postsを使用せずに、Jetpackの統計を使うと、PV取得に時間がかかるというネックに頭を抱えておりまして、今回、試してみたのがこちらです。

      1.非公開ページを作成してコードを打つ
       → これで管理人のみ閲覧可能
       → Post Snippetsを使用して単独記事でphpを使用
      2.そのページで以下のコードを実行すると、PV一覧が見られます

      <ul>
      <?php
      $args = array(
      'posts_per_page' => 10 // 表示件数の指定
      );
      $posts = get_posts( $args );
      foreach ( $posts as $post ): // ループの開始
      setup_postdata( $post ); // 記事データの取得
      ?>
      <li>
      <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        <div class="admin-pv">
        <?php //全体、月別、週別、日別のPV表示
          echo '<span class="all">全体:<span class="pv-count">', wpp_get_views ( get_the_ID(), 'all' ), '</span></span>';
          echo '<span class="monthly">月:<span class="pv-count">', wpp_get_views ( get_the_ID(), 'monthly' ), '</span></span>';
          echo '<span class="weekly">週:<span class="pv-count">', wpp_get_views ( get_the_ID(), 'weekly' ), '</span></span>';
          echo '<span class="daily">日:<span class="pv-count">', wpp_get_views ( get_the_ID(), 'daily' ), '</span></span>';
        ?>
        </div>
      </li>
      <?php
      endforeach; // ループの終了
      wp_reset_postdata(); // 直前のクエリを復元する
      ?>
      </ul>

      という感じです。最近の記事のPV一覧を表示できるし、一般の方には非公開ページは見れないし、管理する側からすると、そのページをお気に入りに入れるなどすると、そのページのみ表示の時間はかかりますが、PV一覧を手軽に確認することができます。

      一応動きました。
      PV数の取得あれこれで考えてみた方法を試してみた結果、こういう方向性もありなのかなと思って勝手に報告させていただきました。

    • #52647
      アバター画像わいひら
      キーマスター

      非公開ページで自分用だったら、遅くても全然ありですよね。
      僕も、使わせてもらおうかな。
      上記コードを取り込んだ、テンプレートファイルを作ってそれを元に固定ページを生成するというのでもいけそう。

    • #52670
      Mori
      ゲスト

      表示は遅いですが、個人用なら問題なしですよ
      そういえば、Jetpack対応の場合はこちらでしたね

      <ul>
      <?php
      $args = array(
      'posts_per_page' => 10 // 表示件数の指定
      );
      $posts = get_posts( $args );
      foreach ( $posts as $post ): // ループの開始
      setup_postdata( $post ); // 記事データの取得
      ?>
      <li>
      <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        <div class="admin-pv">
        <?php //全体、月別、週別、日別のPV表示
          $views_all = 0;
          $views_monthly = 0;
          $views_weekly = 0;
          $views_daily = 0;
      
          //Wordpress Popular Posts利用時
          if (is_admin_pv_type_wpp()) {
            $views_all = wpp_get_views ( get_the_ID(), 'all' );
            $views_monthly = wpp_get_views ( get_the_ID(), 'monthly' );
            $views_weekly = wpp_get_views ( get_the_ID(), 'weekly' );
            $views_daily = wpp_get_views ( get_the_ID(), 'daily' );
          }
      
          //Jetpack利用時
          if (is_admin_pv_type_jetpack()) {
      
            $jetpack_views = stats_get_csv('postviews', array('days' => -1, 'limit' => 1, 'post_id' => $post->ID ));
            if (isset($jetpack_views[0]['views'])) {
              $views_all = $jetpack_views[0]['views'];
            }
            $jetpack_views = stats_get_csv('postviews', array('days' => 30, 'limit' => 1, 'post_id' => $post->ID ));
            if (isset($jetpack_views[0]['views'])) {
              $views_monthly = $jetpack_views[0]['views'];
            }
            $jetpack_views = stats_get_csv('postviews', array('days' => 7, 'limit' => 1, 'post_id' => $post->ID ));
            if (isset($jetpack_views[0]['views'])) {
              $views_weekly = $jetpack_views[0]['views'];
            }
            $jetpack_views = stats_get_csv('postviews', array('days' => 1, 'limit' => 1, 'post_id' => $post->ID ));
            if (isset($jetpack_views[0]['views'])) {
              $views_daily = $jetpack_views[0]['views'];
            }
          }
          echo '<span class="all">全体:<span class="pv-count">', $views_all, '</span></span>';
          echo '<span class="monthly">月:<span class="pv-count">', $views_monthly, '</span></span>';
          echo '<span class="weekly">週:<span class="pv-count">', $views_weekly, '</span></span>';
          echo '<span class="daily">日:<span class="pv-count">', $views_daily, '</span></span>';
          if (is_jetpack_stats_module_active() && !is_wpp_enable()) {
            echo '<span class="jp-page"><a href="'.admin_url().'admin.php?page=stats&view=post&post='.get_the_ID().'"title="Jetpackの統計" target="_blank"><span class="fa fa-bar-chart"></span></a></span>';
          }
        ?>
        </div>
      </li>
      <?php
      endforeach; // ループの終了
      wp_reset_postdata(); // 直前のクエリを復元する
      ?>
      </ul>
    • #52674
      アバター画像わいひら
      キーマスター

      ほんとだ。#52627はWordpress Popular Postsのコードでしたね。

3件の返信スレッドを表示中
  • フォーラム「テーマファイルのカスタマイズに関する質問など」には新規投稿および返信を追加できません。
スポンサーリンク
アドセンス(大)
アドセンス(大)