Làm thế nào chuyển hướng người dùng tới bài viết ngẫu nhiên trong WordPress?

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 đó.

chuyển hướng người dùng tới bài viết ngẫu nhiên

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.

Về tác giả

Duy Anh

Chào các bạn,

Mình là coder, đang sống và làm việc ở Mỹ. Mình thích viết lách nên muốn dành khoảng thời gian trống để chia sẻ các thủ thuật giúp các bạn xây dựng được trang web riêng của mình. Bạn nào cần xây dựng blog, web thì cứ ới, rảnh là mình giúp, tất cả FREE nhé!

Ý kiến cá nhân của bạn

bộ công cụ Wordpress hữu ích dành cho mọi website

Bộ công cụ hữu ích dành cho mọi website Wordpress

Bao gồm theme & plugin tốt nhất và được sử dụng nhiều nhất!

Xin vui lòng kiểm tra email để xác thực tài khoản!