Saya memiliki blog dengan beberapa halaman dalam beberapa kategori "proyek" yang terstruktur / dinamai seperti ini:
- / proyek / proyek-2012
- / proyek / proyek-2013
- / proyek / proyek-2014
- / proyek / proyek-2015
Ketika pengguna memasukkan URL seperti http://myblog.com/project atau bahkan http://myblog.com/proje ia diarahkan ke halaman / proyek / proyek-2012 . (Dengan 301 Dipindahkan Secara Permanen!)
Meskipun saya ingin wordpress mengubah URL yang menghasilkan satu halaman yang jelas (mis. Seperti http://myblog.com/?p=123 ) menjadi bentuk kanonik, saya hanya ingin menonaktifkan pelengkapan otomatis URL untuk URL "tidak jelas" yang mungkin mengarah ke beberapa halaman.
Pertanyaan saya adalah: Bagaimana saya bisa mencapai ini?
Saya juga melakukan riset ...
Jawaban yang diterima untuk pertanyaan Disable Wordpress URL auto complete menonaktifkan seluruh sistem URL kanonik. Ini tidak dapat diterima untuk saya.
Sekitar empat tahun lalu, sesuatu seperti ini muncul di pelacak bug Wordpress: https://core.trac.wordpress.org/ticket/8948 Sementara beberapa solusi bagus (seperti menawarkan halaman "Kami tidak menemukan URL Anda. Tapi apakah Anda mungkin mencari salah satu halaman berikut? ") dibahas di sana, tiket ditutup pada akhirnya.
EDIT: Sebenarnya ada tiket baru di https://core.trac.wordpress.org/ticket/16557 yang mencakup persis apa yang saya butuhkan. Tampaknya ditargetkan untuk rilis 4.0. Dan komentar tiket juga mengandung solusi (lihat di bawah).
Jawaban:
Oke, setelah mencari sedikit lebih banyak akhirnya saya menemukan jawaban untuk pertanyaan saya sendiri yang tersembunyi di komentar tiket permintaan fitur ini: https://core.trac.wordpress.org/ticket/16557 Pengguna nacin menyarankan untuk menggunakan kode ini:
Jika Anda menambahkan ini ke file php plugin baru (misalnya di wp-content / plugins / disable-url-autocorrect-guessing.php) Anda akan memiliki plugin yang bagus yang dapat Anda aktifkan untuk menonaktifkan fitur "menebak" autocorrect Wordpress. .
Untuk menyelamatkan Anda dari masalah, saya benar-benar melakukan ini dan menyerahkan plugin saya di Wordpress.org. Setelah ditinjau di sana, Anda harus dapat mengunduhnya di sini: https://wordpress.org/plugins/disable-url-autocorrect-guessing/
Meskipun ini merupakan solusi yang berfungsi, kode yang disarankan agak meretas. Setelah permintaan fitur di https://core.trac.wordpress.org/ticket/16557 benar-benar diimplementasikan, akan ada cara solusi yang lebih baik untuk ini serta kontrol yang jauh lebih baik tentang bagaimana tebakan seharusnya dilakukan.
sumber
remove_filter()
. Tapi sekarang hanya melewati kasus tertentu di mana saya mengalami masalah. Kalau-kalau ada orang yang tertarik dengan masalah saya: wordpress.stackexchange.com/questions/307670/…Sayangnya
redirect_canonical()
400+ baris kode (dan terus berkembang dari rilis ke rilis), yang tidak terstruktur khusus untuk dikendalikan oleh tujuan. Semua atau tidak sama sekali kesepakatan yang tidak dapat dikonfigurasi secara fleksibel.Dari sudut pandang praktis, pilihan terbaik Anda adalah:
template_redirect
.redirect_canonical
pengait jika target itu muncul tidak diinginkan.Dalam kedua kasus Anda harus mengembangkan logika apa yang sebenarnya membuat pengalihan yang tidak diinginkan.
sumber
redirect_guess_404_permalink()
dan itu tidak membuat perbedaan seperti itu, hanya mengambil pertandingan pertama SQL menghasilkan :(