Nonaktifkan URL Wordpress secara otomatis selesai


15

Saya baru-baru ini memperhatikan bahwa Wordpress mencoba untuk melengkapi URL secara otomatis ketika itu tidak dikirimkan secara keseluruhan. Misalnya saya punya URL posting yang terlihat seperti ini:

http://www.mysite.com/some-post-title

Jika saya telusuri ke URL berikut:

http://www.mysite.com/some-post-ti

Saya dapat melihat bahwa URL dikirimkan ke Wordpress tetapi Wordpress melakukan 301 redirect ke http://www.mysite.com/some-post-title.

Bagaimana saya bisa menonaktifkan perilaku ini?


Solusi teruji yang tidak menonaktifkan keseluruhan sistem URL kanonik tetapi hanya menonaktifkan bagian "tebak-tebakan" autocomplet diuraikan di sini
Hauke ​​P.

Jawaban:


19

Saya percaya itu adalah redirect_canonicalfungsi yang terkait template_redirect. Anda harus dapat menonaktifkannya dengan:

remove_filter('template_redirect', 'redirect_canonical'); 

Tetapi Anda harus benar-benar berpikir apakah Anda ingin melakukannya karena cukup rumit dan melakukan beberapa fungsi SEO penting:

Redirect tautan masuk ke URL yang tepat berdasarkan url situs.

Mesin pencari menganggap www.somedomain.com dan somedomain.com sebagai dua URL yang berbeda ketika keduanya pergi ke lokasi yang sama. Peningkatan SEO ini mencegah penalti untuk duplikat konten dengan mengarahkan ulang semua tautan masuk ke satu atau yang lain.

Mencegah pengalihan untuk feed, trackback, pencarian, popup komentar, dan URL admin. Tidak mengarahkan pada IIS 7 yang tidak mendukung permalink, halaman / post preview, admin WP, Trackbacks, robots.txt, pencarian, atau permintaan POST.

Juga akan berusaha menemukan tautan yang benar ketika pengguna memasukkan URL yang tidak ada berdasarkan permintaan WordPress yang tepat. Alih-alih akan mencoba mem-parsing URL atau kueri dalam upaya untuk mencari halaman yang benar untuk pergi.

http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/canonical.php#L13

Berikut ini dapat membunuh pelengkapan otomatis tanpa mengacaukan komponen SEO, tapi saya tidak bisa menjanjikan itu. Kode ini hampir tidak diuji karena saya tidak pernah ingin menonaktifkan ini. Saya benar-benar harus belajar redirect_canonicaluntuk memastikan apa pun.

function kill_404_redirect_wpse_92103() {
  if (is_404()) {
   add_action('redirect_canonical','__return_false');
  }
}
add_action('template_redirect','kill_404_redirect_wpse_92103',1);

Saya menambahkan potongan kode ini ke akhir file /wp-includes/canonical.php saya dan pengalihan masih terjadi. Apakah saya melakukan sesuatu yang salah? Adakah orang lain yang tidak dapat menonaktifkan perilaku ini?
user1380540

3

Tampaknya ini sangat tidak bertanggung jawab, sehingga "tebakan" ini terjadi secara otomatis. Saya akan jauh lebih terbuka untuk itu jika ada beberapa cara untuk menentukan halaman mana yang benar.

Saya memiliki banyak halaman yang dibuat secara berurutan, dan menebak otomatis ini secara keliru memilih untuk merespons dengan halaman yang (secara acak?) Di suatu tempat dalam urutan, sebagai lawan dari halaman awal.

UPDATE: Ini adalah perilaku yang diketahui, dan sedang dipertimbangkan di sini: https://core.trac.wordpress.org/ticket/16557


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.