post image

[WP Tip] – Post Views counter

Đế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.

Mọi thắc mắc các bạn có thể email về izwebz.art@gmail.com (Minh Mẫn)

«

»

36 Comments

( Comment bài này )
  1. trungeuro128 says:

    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…

    • MittoBoomee says:

      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 !

  2. phiminh says:

    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.

  3. Dương says:

    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

  4. Dũng Đào says:

    cám ơn rất nhiều

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

  6. hoangit21 says:

    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 says:

      À 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 says:

      Đó 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é.

  7. blog radio says:

    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ả

  8. david says:

    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!!

  9. Mr Tri says:

    Đã 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

  10. Hoang Anh says:

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

  11. seo là gì says:

    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

  12. Phonglt says:

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

    Lượt xem: lượt

  13. Gà Con says:

    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á

  14. 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ư:



  15. Việt Designer says:

    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

    • Để 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.

  16. 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é ^^

    • Hiếu bò says:

      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)

  17. Phúc pro says:

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

  18. K.Steve says:

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

  19. Ơ, đú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ì.

  20. Đú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 ạ.

    • 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.

    • Gà Con says:

      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

  21. Nova says:

    Thanks :) like izwebz :)

  22. 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

  1. BB
  2. BB
  3. BB

arrow

Lưu ý khi post comment:

  • Không "bóc tem" topic
  • Dùng lời lẽ có văn hoá và lịch sự
  • Xem trang FAQs trước khi hỏi
  • Bạn có thể dùng thẻ HTML như:<strong>, <em>, <a>
  • Đặt code trong thẻ [php],[html],[javascript],[css]

Chọn kiểu gõ: Tự động TELEX VNI Tắt