Trong quá khứ, chúng tôi đã hướng dẫn bạn cách tạo tab bài đăng phổ biến trong WordPress bằng cách sử dụng plugin. Plugin đó hoạt động tuyệt vời cho những người làm nghề tab. Tuy nhiên, chúng tôi muốn có nhiều tùy chỉnh hơn trong bố cục của mình, vì vậy chúng tôi quyết định làm điều đó mà không cần plugin. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách theo dõi và hiển thị các bài đăng phổ biến theo lượt xem trong WordPress mà không cần sử dụng bất kỳ plugin nào.
Ví dụ về hiển thị bài đăng phổ biến tùy chỉnh của chúng tôi được hiển thị trong ảnh chụp màn hình bên dưới:
Điều đầu tiên chúng ta cần làm là tạo một chức năng sẽ phát hiện số lượt xem bài đăng và lưu trữ nó dưới dạng trường tùy chỉnh cho mỗi bài đăng. Để thực hiện việc này, hãy dán các mã sau vào tệp functions.php của chủ đề hoặc tốt hơn trong một plugin dành riêng cho trang web :
function wpb_set_post_views($postID) { $count_key = 'wpb_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++; update_post_meta($postID, $count_key, $count); } } //To keep the count accurate, lets get rid of prefetching remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
Bây giờ bạn đã có chức năng này, chúng ta cần gọi chức năng này trên các trang bài đăng đơn lẻ. Bằng cách này, hàm biết chính xác bài đăng nào nhận được tín dụng cho lượt xem. Để thực hiện việc này, bạn cần dán đoạn mã sau vào bên trong vòng lặp bài đăng đơn của mình:
wpb_set_post_views(get_the_ID());
Nếu bạn đang sử dụng chủ đề con hoặc bạn chỉ muốn làm mọi thứ dễ dàng cho chính mình, thì bạn chỉ cần thêm trình theo dõi vào tiêu đề của mình bằng cách sử dụng wp_head hook. Vì vậy, hãy dán mã sau vào tệp functions.php của chủ đề hoặc plugin dành riêng cho trang web:
function wpb_track_post_views ($post_id) { if ( !is_single() ) return; if ( empty ( $post_id) ) { global $post; $post_id = $post->ID; } wpb_set_post_views($post_id); } add_action( 'wp_head', 'wpb_track_post_views');
Khi bạn đã đặt cái này, mỗi khi người dùng truy cập vào bài đăng, trường tùy chỉnh sẽ được cập nhật.
Lưu ý: Nếu bạn đang sử dụng plugin bộ nhớ đệm, kỹ thuật này sẽ KHÔNG hoạt động theo mặc định. Chúng tôi đang sử dụng W3 Total Cache và nó có tính năng được gọi là Fragmented Caching. Bạn có thể sử dụng nó để làm cho công việc này tốt hơn. Đây là những gì cần được thay đổi:
Giờ đây, bạn có thể thực hiện tất cả những thứ thú vị như hiển thị số lượt xem bài đăng hoặc sắp xếp bài đăng theo số lượt xem. Chúng ta hãy xem cách thực hiện một số điều thú vị này.
Nếu bạn muốn hiển thị số lượt xem bài đăng trên các trang bài đăng đơn lẻ của mình (thường bên cạnh số lượng nhận xét hoặc thứ gì đó). Sau đó, điều đầu tiên bạn cần làm là thêm phần sau vào tệp functions.php của chủ đề hoặc plugin dành riêng cho trang web.
function wpb_get_post_views($postID){ $count_key = 'wpb_post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); return "0 View"; } return $count.' Views'; }
Sau đó, bên trong vòng lặp bài đăng của bạn, hãy thêm mã sau:
wpb_get_post_views(get_the_ID());
Nếu bạn muốn sắp xếp các bài viết theo số lượt xem, thì bạn có thể làm như vậy dễ dàng bằng cách sử dụng tham số wp_query post_meta. Truy vấn vòng lặp ví dụ cơ bản nhất sẽ giống như sau: