2 cách hiển thị bài viết phổ biến theo lượt xem WordPress
Giới thiệu
Hiển thị các bài viết phổ biến theo lượt xem là một cách tuyệt vời để thu hút sự chú ý của độc giả đến những nội dung có giá trị nhất trên trang web WordPress của bạn. Việc này giúp tăng thời gian người dùng ở lại trang, giảm tỷ lệ thoát và có thể cải thiện thứ hạng SEO. Trong bài viết này, chúng ta sẽ khám phá hai phương pháp phổ biến để hiển thị bài viết phổ biến theo lượt xem trong WordPress.
Cách 1: Sử Dụng Plugin WordPress
Sử dụng plugin là phương pháp đơn giản và nhanh chóng nhất để thêm tính năng này vào trang web WordPress của bạn. Có rất nhiều plugin miễn phí và trả phí có sẵn trên thị trường, mỗi plugin có các tính năng và tùy chọn tùy chỉnh khác nhau. Dưới đây là một số plugin phổ biến:
- WordPress Popular Posts
- Trending/Popular Posts
- Top 10 – WordPress Popular Posts Plugin
Hướng dẫn cài đặt và sử dụng plugin WordPress Popular Posts
- Cài đặt Plugin: Truy cập trang quản trị WordPress của bạn, đi đến “Plugins” -> “Thêm mới” và tìm kiếm “WordPress Popular Posts”. Nhấn “Cài đặt” và sau đó “Kích hoạt” plugin.
- Cấu hình Plugin: Sau khi kích hoạt, bạn sẽ thấy một mục “WordPress Popular Posts” trong menu bên trái. Nhấp vào đó để truy cập trang cài đặt.
- Tùy chỉnh Hiển thị: Trong trang cài đặt, bạn có thể tùy chỉnh nhiều khía cạnh của cách hiển thị bài viết phổ biến, bao gồm:
- Thời gian: Chọn khoảng thời gian để tính lượt xem (ví dụ: 24 giờ qua, 7 ngày qua, 30 ngày qua, hoặc tất cả thời gian).
- Số lượng bài viết: Xác định số lượng bài viết phổ biến bạn muốn hiển thị.
- Giao diện: Chọn kiểu giao diện, bao gồm cả hình ảnh thu nhỏ, tiêu đề, đoạn trích, và số lượt xem.
- Sắp xếp: Chọn cách sắp xếp bài viết (ví dụ: theo lượt xem, bình luận, hoặc cả hai).
- Thêm vào Widget: Sau khi cấu hình, bạn có thể thêm widget “WordPress Popular Posts” vào sidebar, footer, hoặc bất kỳ khu vực widget nào khác trên trang web của bạn. Đi đến “Appearance” -> “Widgets” và kéo widget vào vị trí mong muốn.
- Sử dụng Shortcode: Ngoài ra, bạn có thể sử dụng shortcode để hiển thị danh sách bài viết phổ biến trong bất kỳ bài viết hoặc trang nào. Shortcode có dạng
[wpp]và có thể được tùy chỉnh thêm với các tham số khác.
Ưu điểm của việc sử dụng Plugin
- Dễ dàng cài đặt và sử dụng
- Nhiều tùy chọn tùy chỉnh
- Không yêu cầu kiến thức lập trình
Nhược điểm của việc sử dụng Plugin
- Có thể ảnh hưởng đến hiệu suất trang web nếu sử dụng nhiều plugin
- Một số plugin có thể chứa mã độc
- Các plugin trả phí có thể tốn kém
Cách 2: Sử Dụng Code (Tùy chỉnh Theme)
Nếu bạn muốn kiểm soát hoàn toàn cách hiển thị bài viết phổ biến và không muốn sử dụng plugin, bạn có thể sử dụng code để tùy chỉnh theme WordPress của mình. Phương pháp này đòi hỏi kiến thức về PHP và WordPress theme development.
Các bước thực hiện
- Tạo một Child Theme: Trước khi thực hiện bất kỳ thay đổi nào đối với theme của bạn, hãy tạo một child theme. Điều này sẽ giúp bạn bảo vệ các tùy chỉnh của mình khỏi bị ghi đè khi cập nhật theme chính.
- Thêm code vào `functions.php`: Mở file `functions.php` của child theme của bạn và thêm đoạn code sau:
<?php
function get_popular_posts($post_count = 5, $time_range = 'all_time') {
global $wpdb;
$time_condition = '';
if ($time_range == 'last_24_hours') {
$time_condition = "AND post_date >= '" . date('Y-m-d H:i:s', strtotime('-24 hours')) . "'";
} elseif ($time_range == 'last_7_days') {
$time_condition = "AND post_date >= '" . date('Y-m-d H:i:s', strtotime('-7 days')) . "'";
} elseif ($time_range == 'last_30_days') {
$time_condition = "AND post_date >= '" . date('Y-m-d H:i:s', strtotime('-30 days')) . "'";
}
$sql = "SELECT post_id, SUM(pageviews) AS total_views
FROM {$wpdb->prefix}post_views
WHERE post_type = 'post'
{$time_condition}
GROUP BY post_id
ORDER BY total_views DESC
LIMIT %d";
$popular_posts = $wpdb->get_results($wpdb->prepare($sql, $post_count));
if ($popular_posts) {
echo '<ul>';
foreach ($popular_posts as $post) {
$post_id = $post->post_id;
$post_title = get_the_title($post_id);
$post_link = get_permalink($post_id);
echo '<li><a href="' . esc_url($post_link) . '">' . esc_html($post_title) . '</a></li>';
}
echo '</ul>';
} else {
echo '<p>Không có bài viết phổ biến nào.</p>';
}
}
// Thêm bảng lưu lượt xem (cần thiết nếu chưa có)
function create_post_views_table() {
global $wpdb;
$table_name = $wpdb->prefix . 'post_views';
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
post_id bigint(20) UNSIGNED NOT NULL,
post_type varchar(20) NOT NULL,
pageviews int(11) NOT NULL DEFAULT '1',
last_updated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
post_date datetime NOT NULL,
PRIMARY KEY (id),
KEY post_id (post_id)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
register_activation_hook( __FILE__, 'create_post_views_table' );
// Lưu lượt xem (ví dụ sử dụng filter)
function track_post_views($template) {
if (is_singular('post')) {
global $post, $wpdb;
$table_name = $wpdb->prefix . 'post_views';
$post_id = $post->ID;
$post_type = get_post_type($post_id);
$post_date = $post->post_date;
$existing_view = $wpdb->get_row(
$wpdb->prepare(
"SELECT id FROM $table_name WHERE post_id = %d",
$post_id
)
);
if ($existing_view) {
$wpdb->query(
$wpdb->prepare(
"UPDATE $table_name SET pageviews = pageviews + 1, last_updated = NOW() WHERE post_id = %d",
$post_id
)
);
} else {
$wpdb->insert(
$table_name,
array(
'post_id' => $post_id,
'post_type' => $post_type,
'pageviews' => 1,
'post_date' => $post_date
)
);
}
}
return $template;
}
add_action('template_include', 'track_post_views');
?>
Lưu ý quan trọng: Đoạn code trên cần một bảng trong cơ sở dữ liệu để lưu lượt xem. Code này tạo bảng `wp_post_views` khi plugin (theme) được kích hoạt và cập nhật bảng này khi một bài viết được xem. Code này *cần* được điều chỉnh cẩn thận cho phù hợp với cấu trúc cơ sở dữ liệu hiện có của bạn và yêu cầu bảo mật. Sử dụng code này có thể gây ra các vấn đề nếu không được thực hiện đúng cách. Hãy sao lưu cơ sở dữ liệu của bạn trước khi thử!
- Hiển thị bài viết phổ biến: Bạn có thể hiển thị danh sách bài viết phổ biến bằng cách sử dụng hàm `get_popular_posts()` trong các file template của theme của bạn (ví dụ: `sidebar.php`, `footer.php`, hoặc bất kỳ file nào khác bạn muốn hiển thị). Ví dụ:
<?php get_popular_posts(5, 'last_30_days'); ?>
Đoạn code này sẽ hiển thị 5 bài viết phổ biến nhất trong 30 ngày qua.
Tùy chỉnh Code
Bạn có thể tùy chỉnh code để thay đổi số lượng bài viết hiển thị, khoảng thời gian tính lượt xem, kiểu hiển thị và nhiều hơn nữa. Hãy tham khảo tài liệu WordPress để tìm hiểu thêm về các hàm và API liên quan.
Ưu điểm của việc sử dụng Code
- Kiểm soát hoàn toàn cách hiển thị
- Không phụ thuộc vào plugin
- Hiệu suất tốt hơn (nếu code được tối ưu hóa)
Nhược điểm của việc sử dụng Code
- Yêu cầu kiến thức lập trình
- Dễ mắc lỗi
- Cần bảo trì và cập nhật thường xuyên
Kết luận
Cả hai phương pháp trên đều có ưu và nhược điểm riêng. Việc lựa chọn phương pháp nào phù hợp nhất phụ thuộc vào kỹ năng lập trình của bạn, mức độ tùy chỉnh bạn mong muốn và yêu cầu hiệu suất của trang web của bạn. Nếu bạn là người mới bắt đầu và không có kiến thức lập trình, sử dụng plugin là lựa chọn tốt nhất. Nếu bạn có kinh nghiệm lập trình và muốn kiểm soát hoàn toàn cách hiển thị, sử dụng code là lựa chọn phù hợp hơn. Dù bạn chọn phương pháp nào, hãy đảm bảo rằng bạn thực hiện các biện pháp bảo mật cần thiết để bảo vệ trang web của bạn.
