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

Một trong những tính năng mới mà chúng tôi đã thêm vào trong thiết kế mới của chúng tôi là tính năng này được gọi là “Khám phá” mà bạn thấy nổi bật trong toàn bộ mạng của chúng tôi. Khi người dùng nhấp vào nút này, họ sẽ được đưa đến một bài đăng ngẫu nhiên trên trang web. Trước đây, chúng tôi đã làm nó để người dùng được đưa đến một trang có thể hiển thị một bài đăng ngẫu nhiên. Có khá nhiều vấn đề với điều đó. Một trong những chính là người sử dụng không bao giờ biết URL thực tế của trang. Khi tung ra trang List25 mới nhất của chúng tôi, chúng tôi nghĩ rằng sẽ rất thú vị khi thêm một nút gọi là tôi cảm thấy tò mò và cho phép người dùng duyệt theo cách đó. Vào lúc này, tôi đã nói chuyện tại WordCamp Louisville. Một người bạn của chúng tôi mà tôi đã tìm kiếm cho rất nhiều thứ (@ Otto42) đã xảy ra để được tham dự. Trong suốt khoá học của tôi, Otto đã viết đoạn này hơn là nghe bài nói chuyện của tôi (như ông ta thực sự cần phải học nó). Câu chuyện dài khá dài, trong bài này, chúng tôi sẽ chỉ cho bạn cách chuyển hướng người dùng đến một bài đăng ngẫu nhiên trong WordPress.

Mở tập tin functions.php của chủ đề hoặc tạo một tệp plugin trống và dán đoạn mã sau:

add_action ('init', 'random_add_rewrite');
 chức năng random_add_rewrite () {
        global $ wp;
        $ wp-> add_query_var ('ngẫu nhiên');
        add_rewrite_rule ('random /? $', 'index.php? random = 1', 'top');
 }

 add_action ('template_redirect', 'random_template');
 chức năng random_template () {
        if (get_query_var ('random') == 1) {
                $ posts = get_posts ('post_type = post & orderby = rand & numberposts = 1');
                foreach ($ bài đăng dưới dạng $ post) {
                        $ link = get_permalink ($ post);
                }
                wp_redirect ($ liên kết, 307);
                lối thoát;
        }
 } 

Đó là nó và bạn đã làm xong. Bây giờ tạo một nút liên kết đến yourdomain.com/random/ và đoạn trên sẽ chăm sóc phần còn lại.

Giải thích đoạn mã:

Đoạn mã này trước tiên thêm một biến truy vấn Random. Sau đó nó sử dụng template_redirect hook trong WordPress và nói nếu biến ngẫu nhiên ở đó, sau đó lấy một bài đăng từ kiểu post “Post” một cách ngẫu nhiên. Sau đó, nó thực hiện một chuyển hướng đơn giản 307.

Lý do tại sao đoạn mã sử dụng chuyển hướng 307 là bởi vì nó là chuyển hướng tạm thời. Trình duyệt thường lưu trữ bộ nhớ cache 302 chuyển hướng mà nổi tiếng nổi tiếng với các chuyển hướng tạm thời.

Rất ít lỗi chúng tôi chạy vào:

Nếu bạn đang sử dụng W3 Total Cache và bạn có bộ nhớ đệm cơ sở dữ liệu trên, sau đó bạn cần phải thêm các quy tắc sau đây trong danh sách loại trừ.

/ ngẫu nhiên /
/index.php?random=1

Nếu bạn đang sử dụng plugin WordPress SEO của Yoast, thì đừng sử dụng hộp URL Đường dẫn URL Ugly trong vùng permalinks nếu không mã này sẽ không hoạt động.

Bây giờ bạn có thể tạo nút Tìm kiếm nhỏ như chúng ta có trên trang web của chúng tôi.