API Menulis Ulang WordPress

WordPress memiliki API yang sangat berguna yang disebut “the menulis ulang API“. Saya kira sudah memiliki “url rewriting”, ini adalah proses yang membuat URL lebih mudah dibaca. Misalnya, url yang dituliskan seperti ini http://mysite.com/?page=12&category=12&author=47 bukan tampan. Sulit untuk mengingatnya, dan mesin pencari tidak terlalu menyukainya. Itulah sebabnya hampir setiap CMS memiliki fungsi bawaan yang “menulis ulang” url agar terlihat seperti ini: http://mysite.com/category/business/finance.


API penulisan ulang dan kelas WP_Rewrite

Di dalam WordPress, proses ini juga dikenal sebagai struktur permalinks. Ketika Anda beralih dari struktur permalink default ke struktur khusus, Anda secara otomatis mengaktifkan API penulisan ulang. Ini sepenuhnya otomatis. Namun terkadang Anda perlu membuat aturan penulisan ulang sendiri.

Dalam posting ini, kita akan membuat fungsi sederhana untuk membuat aturan penulisan ulang kustom sederhana. Katakanlah kami ingin mendapatkan nilai pengarah, semacam yang setara dengan $ _GET [‘pengarah’].

Jika kita melihat Codex, kita dapat melihat pada halaman rewrite API bahwa API ini memiliki 6 fungsi bawaan. Penggunaan penulisan ulang yang paling umum adalah menggunakan fungsi-fungsi ini, ada banyak tutorial tentang hal itu, itulah sebabnya saya akan menggunakan filter alih-alih fungsi. Karena ya, API penulisan ulang juga dapat digunakan dengan filter! Filter tersebut terdaftar di WP_Rewrite class Halaman codex.

Menambahkan Var Kueri baru

Untuk memulai, kita perlu membuat fungsi yang akan memberi tahu WordPress bahwa aturan penulisan ulang baru telah ditetapkan. Ini adalah tugas dari add_rewrite_rule () dan add_rewrite_tag ()  fungsi, tetapi Anda juga bisa melakukannya menggunakan query_vars dan rewrite_rules_array filter. Untuk melakukannya, kita perlu membuat dua fungsi dan dua filter. Fungsi pertama hanya akan menambahkan variabel baru ke filter query_vars, dan yang kedua akan mendaftarkan variabel baru ini ke aturan penulisan ulang global:

/ *
|--------------------------------------------------------------------------
| Mulai Menulis Ulang. Contoh: http://mysite.com/referrer/remi
|--------------------------------------------------------------------------
* /

// Daftarkan var baru
function rc_add_query_vars ($ vars) {
$ vars [] = "referrer"; // nama var seperti yang terlihat di URL
mengembalikan $ vars;
}

// Kaitkan fungsi kami ke query_vars
add_filter ('query_vars', 'rc_add_query_vars');

// Tambahkan aturan penulisan ulang baru ke yang ada
function rc_add_rewrite_rules ($ rules) {
$ new_rules = array ('referrer / ([^ /] +) /? $' => 'index.php? referrer = $ cocok [1]');
$ rules = $ new_rules + $ rules;
mengembalikan $ aturan;
}

// Kaitkan fungsinya ke rewrite_rules_array
add_filter ('rewrite_rules_array', 'rc_add_rewrite_rules');

Setelah Anda menambahkan kode ini ke file plugin atau file functions.php tema Anda, buka pengaturan> Permalinks, dan simpan struktur permalinks. Tindakan ini diperlukan. Anda sekarang dapat mengakses situs Anda dengan jenis atau url ini: http://mysite.com/referrer/nama-anda. Jika Anda ingin diarahkan ke halaman tertentu, ubah index.php? Referrer = $ cocok [1] oleh index.php? Pagename = halaman saya & pengarah = $ cocok [1] dengan “halaman saya” adalah halaman yang akan dijadikan diarahkan ke siput.

Mengambil nilai variabel

Sekarang setelah aturan penulisan ulang Anda diatur, Anda mungkin ingin mengakses nilai variabel. Tetapi jika Anda melakukan $ _GET [‘perujuk’ sederhana], Anda tidak akan mendapatkan nilai apa pun. Untuk mengambil nilai vars URL, Anda perlu mengaitkan fungsi ke filter “template_redirect”. Mengaitkan ke filter “init” terlalu dini. Kemudian Anda dapat mengakses variabel yang dibutuhkan melalui objek $ wp_query. Berikut ini contoh cepat cara melakukannya:

// Ambil URL var
function rc_get_my_vars () {
global $ wp_query;

if (isset ($ wp_query-> query_vars ['referrer'])) {
$ referrer = get_query_var ('referrer');
}
}

// Kaitkan fungsi ke template_redirect
add_action ('template_redirect', 'rc_get_my_vars');

Anda selanjutnya dapat menggemakan nilai $ referrer atau menggunakannya sebagaimana dilakukan dengan variabel GET normal.

Tentu saja Anda dapat memodifikasi menggunakan lebih dari satu variabel:

// di rc_add_query_vars ()
$ vars [] = "referrer";
$ vars [] = "kampanye";

// di rc_add_rewrite_rules ()
$ new_rules = array ('pengarah / ([^ /] +) / ([^ /] +) /? $' => 'index.php? pagename = halaman saya & pengarah = $ cocok [1] & kampanye = $ cocok [ 2] ');

Jangan lupa bahwa Anda memerlukan modul PHP mod_rewrite yang memungkinkan untuk menggunakan penulisan ulang url.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map