Salah satu fitur baru yang kami tambahkan dalam desain baru kami adalah fitur yang disebut “Jelajahi” yang Anda lihat menonjol di seluruh jaringan kami. Saat pengguna mengeklik tombol ini, mereka diarahkan ke pos acak di situs. Sebelumnya, kami melakukannya sehingga pengguna dibawa ke halaman yang akan menampilkan pos acak. Ada beberapa masalah dengan itu. Yang utama adalah pengguna tidak pernah tahu URL sebenarnya dari halaman tersebut. Saat meluncurkan List25 situs terbaru kami, kami pikir akan lebih keren menambahkan tombol yang disebut saya merasa penasaran dan membiarkan pengguna menjelajah dengan cara itu. Pada saat ini, saya sedang berbicara di WordCamp Louisville. Seorang teman kami yang saya cari untuk banyak hal (@ Otto42) kebetulan hadir. Selama sesi saya, Otto menulis cuplikan ini daripada mendengarkan ceramah saya (seperti dia benar-benar perlu mempelajarinya). Singkat cerita, dalam artikel ini, kami akan menunjukkan cara mengarahkan pengguna ke pos acak di WordPress.
Buka file functions.php tema Anda atau buat file plugin kosong dan tempelkan kode berikut ini:
add_action ('init', 'random_add_rewrite'); fungsi random_add_rewrite () { global $ wp; $ wp-> add_query_var ('acak'); add_rewrite_rule ('random /? $', 'index.php? random = 1', 'top'); } add_action ('template_redirect', 'random_template'); fungsi random_template () { if (get_query_var ('random') == 1) { $ posts = get_posts ('post_type = post & orderby = rand & numberposts = 1'); foreach ($ posts sebagai $ post) { $ link = get_permalink ($ post); } wp_redirect ($ link, 307); keluar; } }
Itu saja dan kamu sudah selesai. Sekarang buat tombol yang bertaut ke yourdomain.com/random/ dan cuplikan di atas akan mengurus sisanya.
Penjelasan cuplikan:
Potongan ini pertama kali menambahkan variabel query Random. Lalu gunakan template_redirect Berkicau di WordPress dan bilang kalau variabel randomnya ada disana, maka dapatkan postingan dari postingan “Post” secara acak. Kemudian redirect 307 sederhana.
Alasan mengapa potongan menggunakan 307 redirect adalah karena ini adalah pengalihan sementara. Browser sering menyimpan 302 redirect yang terkenal karena pengalihan sementara.
Beberapa bug yang kita hadapi:
Jika Anda menggunakan W3 Total Cache dan Anda memiliki caching database, Anda perlu menambahkan peraturan berikut dalam daftar pengecualian.
/acak/
/index.php?random=1
Jika Anda menggunakan plugin Yoast’s WordPress SEO, maka jangan gunakan kotak centang Redirect Ugly URLs di permalinks jika kode ini tidak akan berfungsi.
Sekarang Anda bisa membuat tombol Jelajahi sedikit seperti yang ada di situs kami.