• 4842 fans
  • 1036 reader
  • 122 followers
[WP Tip] – Post Views counter
  • Tutorial Details
  • Độ khó: Căn bản
  • Thời gian: 15 phút
  • Yêu cầu: Căn bản PHP, Wordpress

Đếm xem số lượt người đã xem qua bài viết của mình trên WP xem tưởng như là một việc đơn giản, nhưng mà lại cũng khá khó khăn với một số bạn.

Việc đếm số người xem bài viết thì các bạn có thể sử dụng plug-in WP-Postviews, tuy nhiên, mình đã thử mọi cách tuy nhiên nó không hoạt động, nó cứ hiển thị 0 Views.

Và mình đã tìm ra một cách khác để đếm số lượt xem bài viết mà không cần dùng bất kì plug-in nào cả, các bạn có thể làm theo các bước phía dưới là được.

Đầu tiên, bạn mở file functions.php ra và thêm vào đoạn code sau.

function getPostViews($postID){ // hàm này dùng để lấy số người đã xem qua bài viết
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){ // Nếu như lượt xem không có
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
        return "0"; // giá trị trả về bằng 0
    }
    return $count; // Trả về giá trị lượt xem
}
function setPostViews($postID) {// hàm này dùng để set và update số lượt người xem bài viết.
    $count_key = 'post_views_count';
    $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++; // cộng đồn view
        update_post_meta($postID, $count_key, $count); // update count
    }
}

Sau khi đã có 2 hàm trên thì việc còn lại là chúng ta gọi 2 hàm đó để sử dụng thôi.
Trước tiên, để có được lượt view thì bạn cần để function setPostViews() trong file single.php và nó phải nằm trong vòng lập while.

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php setPostViews(get_the_ID()); ?> <!-- set và update lại lượt views-->
<?php the_title(); ?> <!-- Title bài viết -->
<?php the_content(); ?> <!--/ Nội dung bài viết-->
<?php endwhile; endif; ?>

Còn hàm getPostViews() thì chúng ta có thể để nó ở mọi nơi như index.php, category.php, single.php… để nó hiển thị số lượt xem bài viết, và tất nhiên là nó phải nằm trong vòng while.

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
Lượt xem: <?php getPostViews(get_the_ID()); ?> lượt <!-- lấy thông tin lược views-->
<?php the_title(); ?> <!-- Title bài viết-->
<?php the_content(); ?> <!-- Nội dung bài viết-->
<?php endwhile; endif; ?>

Vậy là với vài thao tác đơn giản, chúng ta có thể tạo ra được 1 ứng dụng nho nhỏ cho WP, và tất nhiên là không cần phải dùng plug-in nào hết. Chúc các bạn vui vẻ với bài viết.

Võ Minh Mẫn Website facebook twitter user_email

Nghề chính là chém gió, quăng bom và ném lựu đạn. Nghề phụ là cắt cỏ, chém chuối, cưa cây......

  • http://yeuweb.net Long

    Bạn có thể code thống kê ra những bài viết nào được xem nhiều nhất nằm ở thanh bên được ko vậy?

    • http://blogradiovn.com Blog radio

      Em làm mãi mà không được bác àh. ko hiểu sai ở chỗ nào nhỉ

  • http://kenhgiaothuong.com VietFly

    Cách này có làm cho Thesis 2 không bạn?

  • Lê Đinh Nam

    em muốn tích hợp một trang sản kiêu như theme shop vào cái trang tin tức của em thì làm thế nào được ạ. mong mọi người giúp đỡ.

    PS: Xin lỗi vì hỏi không đúng chủ đề bài này.

  • http://123giảitrí.vn Hồ Hữu Hiền

    Có ai biết làm các bài viết cùng chuyên mục không? Nếu ai biết thì chỉ em với nha. Đang cần gấp lắm. Thanks!

    • http://ducthuan1202.wordpress.com duct

      gửi mail mình share code “bài viết liên quan” cho bạn.

  • http://thanhdatcenter.com ThanhdatCenter

    Hay lắm anh ạ! Anh hẳn là 1 Pro php, anh có thể pm yahoo: nhok_harryposter để em học hỏi thêm được không?

  • http://www.nvtl-it.info Loc_rabbirt

    hic em làm đúng như hướng dẫn mà bỏ tứ lung tung rồi vẫn chưa được, tiện thể ai có xài cái widget tabs ở right sidebar như của izwebz hoặc a admin cho e xin cái widget tabs đó với, cảm ơn anh nhiều.

  • http://www.duydesign.com Lê Duy

    Bài viết rất hay, mình đã sử dụng được. Tuy nhiên có cách nào để function này không count khi là admin click vào post được không vì hiện giờ khi mình xem post để kiểm tra web thì nó vẫn counter +1 nhưng mình chỉnh muốn xem số lượng thực tế của guest thôi. Thanks

  • trungeuro128

    ai biết giới hạn chữ viết được xuất ra trong content post ko? chỉ dùm mình với…
    mình dùng hàm the_content() nó lấy hết chữ của post luôn…

    • http://mos.vn MittoBoomee

      Bạn cho cái này vào functions.php

      function excerpt($num) {
      $limit = $num+1;
      $excerpt = explode(‘ ‘, get_the_excerpt(), $limit);
      array_pop($excerpt);
      $excerpt = implode(” “,$excerpt).”…”;
      echo $excerpt;
      }

      Gọi hàm này ra, nhớ để trong vòng lặp

      Số 30 bạn thay bằng số từ mà muốn giới hạn gọi ra….
      Cái này được dùng cho theme có đa dạng là rất tiện lợi :X. Sử dụng nhiều ở index.php theo tùy biến giao diện người dùng khi Design. Thân !

      • http://mos.vn MittoBoomee

        excerpt(’30′);

        • trungeuro128

          thanks MittoBoomee

        • Hiếu

          Bạn ơi sao mình ném function excerpt vào file function.php thì web lỗi vậy bạn chỉ hộ mình với

      • Conjuror C

        Thank you verry much! Vấn đề này mình tmf cả mấy ngày nay giờ mới thấy,cảm ơn bạn nhiều dù chưa làm…..

      • Conjuror C

        Trời ơi làm giống như bạn mà củng chẳng thấy thay đổi gì cả, giới hạn so 30 có phải là để trong the_excerpt(’30′); không.

  • phiminh

    Mọi người ơi sao dạo này vào izwebz vào phần wordpress trang 2,3 nó hay báo lỗi

    Sau thời gian lâm trọng bệnh do host cùi, cộng với tuổi già sức yếu Cụ Trang Muốn Xem đã từ trần hồi 13 giờ 13 phút, thứ 6 ngày 13 âm lịch tức ngày 31 tháng 2 dương lịch.Em bị hoài, gởi link cho tụi bạn nó cũng bị như vậy….Anh DW xem lại nha…Cảm ơn anh nhiều. Em đang xem đến trang 3 mà nó bị lỗi nên không vào xem được.

  • http://www.nhomlaptrinh.com Dương

    Thực tế hàm trên không có gì sai, chỉ vì thiếu 1 phương thức nên nó không hiện ra thôi. Ngay dòng lệnh show view ra các bạn chỉ cần thêm chữ echo phía trước hàm
    getPostViews(get_the_ID()); này là xong à
    Code như sau:

    Lượt xem: lượt

  • Dũng Đào

    cám ơn rất nhiều

  • http://www.freshbrand.vn Bùi Văn Lợi

    Bài viết khá hay, em nghiên cứu cái vote xong chưa?:))

  • hoangit21

    Chào các bạn. Để sử dụng được bài này của Tác giả thì bạn cần phải thay đổi một chút.
    Cái
    - $count_key = ‘post_views_count’; đổi thành
    - $count_key = ‘views’; (Cái này dùng với WP 3. trở lên)
    Vì mình thấy trong cơ sở dữ liệu của nó Meta_key là views.
    :D . Mình đã sửa và chạy đc. Các bạn thử đi nhé :)

    • hoangit21

      À quên. Còn để hiển thị đc nó ngoài web của bạn thì cần sửa cái dòng này:

      Lượt xem: lượt

      Thành:

      Thế là chạy ngon lanh roài. Chúc các bạn thành công :D

    • h2n1827

      Đó là add_post_meta ! chỉ là 1 cái tên nên tên gì cũng đc miễn là dễ nhớ. Ko liên quan gì đến csdl đâu bạn nhé.

    • http://bocau.net Trung

      tên này do mình tự định nghĩa, đâu có quan trọng đâu

  • http://blogradiovn.com blog radio

    bài này vẫn còn lỗi anh à.e làm theo mà ko được . không hiển thị gì cả

  • http://dailywp.com david

    hey!!Chào cả nhà .minh thấy cái này có rất nhiều và áp dụng nó rất đơn giản..các bạn cố gắng làm theo như Minh Mẫn hướng dẫn là làm đc!!Các bạn có thể lên Google search và thấy hướng dẫn về vấn đề này rất nhiều..Chúc các bạn thành công!!

  • http://www.nvt.com Mr Tri

    Đã làm theo hướng dẫn nhưng không hiển thị được lượt xem, mời tác giả xem lại

  • Hoang Anh

    Ko hiển thị đc lần đọc là sao hả anh.

  • http://seochatluong.com/seo-la-gi seo là gì

    anh ơi cho em đang có cái này thắc mắc , mong anh chỉ giáo dùm ,

    về vấn đề truy xuất dữ liệu của wp thì nó như thế nào ạ , ý em nói nó nhanh hay chậm hơn so với joomla và drupal ?

    vấn đề seo : thì nó có seo tốt hơn joomla và drupal hok ?

    vấn đề bảo mật : nó bảo mật như thế nào .có an toàn hơn joomla và drupal hok ạ ?

    mong anh giải giúp e những thắc mắc cám ơn anh nhiều

  • Phonglt

    Sao mình đã làm theo hướng dẫn nhưng web không số lượt xem

    Lượt xem: lượt

    • Trịnh Tuấn Anh

      Mình giống hệt bạn @@

      • Hiếu

        Như này nè :Lượt xem: lượt

  • http://www.ituplus.com Gà Con

    Cho hỏi lại : có cách nào chỉ cho admin xem lượt view k nhỉ Mẫn? rồi cho nó 1 biến nếu set là 0 thì mọi người có thể xem, còn nếu set bằng 1 thì chỉ admin mới xem được chẳng hạn, được vậy thì tốt quá

    • http://minhman.me Võ Minh Mẫn

      Vẫn đang ngâm cứu ^^!

    • http://trangcongthanh.com Trang Công Thành

      Bạn có thể tạo 1 cái custom field để quản lý nó được mà.

    • h2n1827

      Check user admin là đc.v ! Mỗi user tạo 1 session riêng.

  • http://thevuong.tk Thế Vương

    Cho mình hỏi, cài plugin nào cho wordpress để nó hiển thị vùng code có màu trên blog vậy.
    Ví dụ như:



    • bancamden

      Đó là plugin: SyntaxHighlighter Evolved đó bạn

  • Việt Designer

    Xin chào! Mình hơi bị amatuer trong việc sử dụng PHP nên sau bước add code vào functions.php là tới bước gọi hàm, ko biết gọi hàm là làm sao? bạn có thể nói ra cho những người ko chuyên như mình đc rõ thêm ko? Cảm ơn :D

    • http://minhman.me Võ Minh Mẫn

      Để set+update lướt truy cập thì bạn có thể gọi nó ra như cấu trúc này: setPostViews(get_the_ID());, tuy nhiên bạn phải đặt nó ở trong file single.php và nằm trong vòng lập while. Nói đơn giản, bạn cứ cho nó nằm bên trên the_title(); hoặc the_content();

      Còn để hiển thị số lượt người đã truy cập thì bạn có thể gọi nó ra như thế này getPostViews(get_the_ID()); và bạn có thể đặt nó ở mọi nơi bạn thích, tuy nhiên nó cũng phải nằm trong vòng lập while để có thể lấy dc ID và hoạt động.

  • http://vietdesigner.net Việt Designer

    Hix, mình ko rành về PHP nên ở cái bước gọi 2 hàm ra sử dụng ấy, sau khi gắn đoạn code vào functions.php thì tiếp theo gọi 2 hàm như thế nào vậy? bạn có thể nói rõ hơn ko? Cảm ơn nhìu nhé ^^

    • http://www.comictomb.net Hiếu bò

      Bạn mở file single.php của template lên, chèn dòng :

      <?php setPostViews(get_the_ID()); ?> 

      trong vòng lặp …
      Tiếp theo thì bạn chèn dòng :

      Lượt xem: <?php getPostViews(get_the_ID()); ?> lượt

      ở nơi muốn hiển thị số lượt xem (thường thì cũng chỉ đặt trong single thôi)

  • Phúc pro

    Cảm ơn anh ! Bài viết đơn giản và dễ hiểu…

  • K.Steve

    Cái này tính cả các bots của các SE . Không khả thi cho lắm.

  • http://trangcongthanh.com Trang Công Thành

    Ơ, đúng cái lúc em cần dùng vụ này thì izwebz táng cho cái tut hay quá :x Đỡ mất công cài plugin ^^’ Hì hì.

  • http://sieudinh.org Đặng Ngọc Chánh

    Đúng cái em đang cần luôn :D dạo trước em có làm trang dj bằng wordpress nhưng dùng plug-in thì nó lại hiện là 0.
    Cảm ơn anh nhiều.
    à sẳn đây em muốn hỏi trong wordpress có plug-in nào cho phép member post bài không ạ.

    • http://minhman.me Võ Minh Mẫn

      Cái này thì chỉ cần cái plug-in đăng ký và đăng nhập thôi, bản thân WP khi tạo user mới sẽ dc phân quyền là:
      Subcriber: chỉ dc xem.
      Admin: phân quyền cao nhất.
      Editor:Có thể viết, post/edit bài, edit comment của các user #
      Author:Có thể viết, post/edit bài, comment của chính mình
      Contribution:Có thể viết bài, nhưng phải do cho Author hoặc admin đăng thì mới dc.

    • http://www.ituplus.com Gà Con

      Bài viết rất hay, cảm ơn Minh Mẫn nhiều trc cũng k thể nào làm hiện lượt xem được, sẽ thử cách này và trả lời lại, nhưng lượt xem mà ít quá thì show ra ngại nhỉ? mình thích có code để chỉ admin mới xem được giá trị view thôi bạn có thể làm được không hì :D
      @Đặng Ngọc Chánh : tiện trả lời lưôn bạn là đó là Plugins UCanPost, bạn tìm nhé :D

  • Nova

    Thanks :) like izwebz :)

  • http://nguoileonui.net Phan Thanh Tùng

    Comment là động lực để anh tiếp tục viết các tutorial hướng dẫn anh em.

    Cố gắng viết thêm nhiều tut nữa anh nha :D

Izwebz store
Izwebz store

Các series nên xem trên izwebz cho newbie

Khi vào izwebz chắc nhiều bạn cho rằng các bài viết trên izwebz đều không có hệ thống gì cả? Thực chất, các bài biết đều đi theo một series của riêng nó, ví dụ như PHP, HTML & CSS, PSD2HTML, Photoshop, illustrator,… Trong bài viết này, mình sẽ tổng hợp lại các series bài viết cần thiết cho một newbie.

Izwebz facebook group

Social connect

Recent Comments

Archives