Trong một vài trường hợp, một số blogger hay webmaster muốn chuyển hướng người dùng tới một bài viết ngẫu nhiên nào đó trong WordPress; khi họ bấm vào link hoặc một nút nào đó.
Nghe có vẻ nực cười, ai lại làm như thế chứ? Nhưng với nhiều website giải trí thì việc này lại rất bình thường. Họ thường tạo ra một nút khá to và đặt ở một vị trí bắt mắt người đọc. Trên đó có dòng chữ đại loại là “tôi muốn nhiều thông tin thú vị hơn nữa…”.
Khi người dùng bấm vào nút đó, họ sẽ được chuyển hướng đến một bài bất kỳ, và như vậy sẽ làm giảm bounce rate và tăng thứ hạng cho website. Thực ra có rất nhiều cách để làm con số này trở nên tốt hơn trong con mắt của các công cụ tìm kiếm. Vì vậy chúng tôi đã giới thiệu 10 cách giảm bounce rate cho website dành cho ai đang thực sự quan tâm.
Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách chuyển hướng người dùng tới bài viết ngẫu nhiên trong WordPress.
Việc này tưởng chừng khó nhưng thực sự là khá đơn giản.
Mở file functions.php của giao diện hiện tại hoặc tạo một plugin mới sau đó dán đoạn code bên dưới:
add_action('init','random_add_rewrite'); function random_add_rewrite() { global $wp; $wp->add_query_var('random'); add_rewrite_rule('random/?$', 'index.php?random=1', 'top'); } add_action('template_redirect','random_template'); function random_template() { if (get_query_var('random') == 1) { $posts = get_posts('post_type=post&orderby=rand&numberposts=1'); foreach($posts as $post) { $link = get_permalink($post); } wp_redirect($link,307); exit; } }
Vậy là xong, công việc cuối cùng là tạo đường dẫn hoặc nút trên website của bạn và trỏ đến đường dẫn:
tenmien.com/random/
Giải thích đoạn code trên
Đầu tiên, đoạn code sẽ khai báo biến Random với WordPress. Sau đó sử dụng template_redirect để thực hiện quá trình chuyển hướng người dùng. Nêú trong đường dẫn xuất hiện biến Random thì lấy một bài viết ngẫu nhiên có dạng “Post”. Cuối cùng là thực hiện redirect 307.
Lý do đoạn code sử dụng mã 307 để chuyển hướng người dùng vì đó là chuyển hướng tạm thời. Tức là các trình duyệt sẽ không lưu những thông tin đó vào trong bộ nhớ cache như chuyển hướng 302. Nghĩa là những lần truy cập sau, người dùng sẽ không bị chuyển hướng đến bài viết cũ của lần chuyển hướng trước.
Một vài lỗi có thể xảy ra
Nếu bạn sử dụng W3 Total Cache và cài đặt database caching, thì bạn cần phải thêm rule mới như bên dưới
/random/ /index.php?random=1
Nếu bạn sử dụng Yoast SEO plugin, thì hãy tắt chức năng Redirect Ugly URLs trong phần permalink nếu không đoạn code sẽ không thể hoạt động.
Bây giờ bạn có thể tạo ngay cho mình một nút tương tự trong blog của mình. Hãy cho chúng tôi biết nếu nó thực sự có ích với bạn bằng cách để lại bình luận bên dưới bài viết. Hi vọng bạn cũng quan tâm đến làm thế nào hiển thị IP của người dùng trong WordPress.
Đoạn code PHP bạn thay đổi đã được khôi phục vì có lỗi trong dòng số 294 của file wp-content/themes/flashmagz-lite/functions.php. Hãy sửa và thử lưu lại.
nó báo lỗi này , fixx nhu thê nào bạn
Mình vừa update lại code 1 chút đó bạn, bạn copy rồi thử lại xem sao nhé.
ok bạn, đã hoàn thiện tốt , cám ơn bạn nha
code này có phải hiển thị ngẫu nhiên bài viết , và không lặp lại bài viết đã xem , đùng ko bạn
nó ra lỗi 404 , mình cài wordpress mới , chưa có plugin gì hết
Bạn đã có bài viết nào chưa?
mình có 10 bài
demo ban xem giúp https://demo.ntthost.net/random/
à đc rồi , do mình quên chỉnh link trong option wordpress ,
mà cho mình hỏi thêm , no random nhưng vẫn bị trùng lại bài mới random
bạn có fb hay zalo j để tiện trao dổi
đây bạn nhé: https://www.facebook.com/dieuhauwp