Bagaimana WordPress menangani permalink?

11

WordPress otomatis mengoreksi permalinks (URL) bahkan jika itu dimasukkan secara salah. Misalnya WordPress akan mendarat Anda example.com/some-postbahkan jika Anda masuk example.com/idontexist/some-postatau bahkanexample.com/some

Bisa jadi, WordPress menggunakan RegEx like atau algoritma pencocokan yang membandingkan dari kanan ke kiri dan jika menemukan kecocokan, itu akan membawa Anda ke halaman bahkan jika ada /.*/kiri di sebelah kiri. Tebakan saja! Bagaimana cara WordPress melakukan ini?

Sunting: Saya juga memperhatikan bahwa file .htaccess memeriksa file / direktori virtual menggunakan !fdan !ddan mengarahkan kembali permintaan ke index.php pada folder blog.

Praveen Lobo
sumber

Jawaban:

6

Fungsi redirect_canonical di /wp-includes/canonical.php dipanggil pada URL yang diberikan dan akan berusaha menebak URL yang diinginkan pengguna, dan mengarahkannya ke sana, ketika URL tidak ada. Ini memiliki sejumlah besar kode untuk melakukan ini untuk semua jenis kesalahan umum.

Otto
sumber
1
Terpilih untuk "seluruh jumlah besar": D.
Travis Northcutt
1

Sederhana saja. WordPress menggunakan operator LIKE dalam kueri SQL untuk menebak URL lengkap dari sebagian URL ketika halaman 404

Periksa kode ini diambil dari redirect_guess_404_permalink()fungsi /wp-includes/canonical.php

$where = $wpdb->prepare( 'post_name LIKE %s', $wpdb->esc_like( get_query_var( 'name' ) ) . '%' );
Pramod Jodhani
sumber