Beranda » WordPress » Menulis ulang URL di Tip dan Plugin WordPress

    Menulis ulang URL di Tip dan Plugin WordPress

    Pembaruan terbaru untuk WordPress memungkinkan pengembang untuk menyesuaikan situs web pribadi mereka dengan sangat cepat. Sangat mudah untuk memperbarui area tema Anda, mengganti widget di bilah sisi, dan bahkan menulis fungsi kode PHP kustom Anda sendiri. Hamparan sangat besar - dan satu bidang popularitas menulis ulang permalink URL yang cantik.

    Ada beberapa metode yang dapat Anda gunakan untuk memperbarui sistem penulisan ulang WordPress default. Dalam tutorial ini saya akan membagikan beberapa contoh dan menunjukkan betapa sederhananya prosesnya. Anda membutuhkan pemahaman tentang PHP untuk mengikuti apa yang terjadi dalam kode, tetapi sangat mudah untuk menyalin dan menempel ke template Anda sendiri, praktis tidak ada pekerjaan yang terlibat.

    Memahami WP_Rewrite

    Jika Anda sama sekali tidak asing dengan mod_rewrite di server Apache maka Anda akan mengambil sintaks penulisan ulang WordPress. Sistem mereka masih dibangun di atas sebuah .htaccess file, tetapi semua aturan dikodekan dalam PHP. Ini sebenarnya membuat prosesnya sedikit lebih mudah karena kita memiliki kontrol lebih besar atas penulisan URL kita sendiri.

    Saya sarankan membaca halaman kelas $ wp_rewrite karena ada banyak info tentang subjek tersebut. Bahkan ada beberapa contoh kecil yang bisa kita rujuk untuk membuat semuanya lebih mudah dipahami. Sebagian besar kode dapat ditulis langsung ke dalam tema Anda functions.php mengajukan. Mari kita mulai dengan melihat penulisan ulang default yang sudah disertakan dengan WordPress.

    Konten $ wp_rewrite-> aturan

    Dengan mendeklarasikan $ wp_rewrite kelas sebagai global kami memiliki akses ke semua data internal. Ketika Anda pergi untuk menambahkan aturan Anda sendiri ini ditambahkan ke dalam array dengan nama $ wp_rewrite-> aturan. Penting untuk mengingat variabel ini karena Anda mungkin perlu referensi data berkali-kali selama pengembangan.

    aturan); ?>

    Saya menambahkan blok kode ini ke dalam tema saya page.php mengajukan. Ini akan menampilkan sejumlah besar data yang terlihat seperti kekacauan besar. Tetapi jika Anda Lihat sumber pada halaman Anda sebenarnya mudah untuk melihat aturan penulisan ulang yang cocok dengan nama file mana. Misalnya, mari kita lihat aturan penulisan ulang kategori:

    [category /(.+?)/?$] => index.php? category_name = $ cocok [1] 

    Bit di sisi kiri dalam tanda kurung adalah Apache RewriteRule kami untuk dicari. Dimulai dengan bagian /kategori/ diikuti oleh serangkaian karakter. Jika ini cocok maka server tahu referensi index.php? category_name = saat mengganti variabel di akhir.

    Pengaturan Custom Permalinks

    Ada begitu banyak konten yang bisa dibahas di kelas $ wp_rewrite saja. Banyak properti lain dapat dirujuk, seperti $ wp_rewrite-> category_base atau $ wp_rewrite-> author_base untuk menarik struktur URL default untuk halaman ini. Tetapi selain dari menarik pengaturan default WP kita juga dapat membangun aturan kita sendiri.

    Membangun Kembali Basis Penulis

    Ketika Anda memasuki halaman pengaturan Permalinks Anda memiliki opsi untuk mengatur ulang basis kategori dan tag. Namun opsi untuk mereset basis penulis Anda anehnya tidak ada.

    Tapi kita bisa menggunakan add_rewrite_rule () dari WordPress 'codex untuk mengintegrasikan beberapa pengaturan baru. Dalam hal ini saya sudah diganti /penulis/ dengan /penulis/ tetapi Anda bisa menggunakan basis apa pun yang Anda suka. Selain itu saya telah menyalin beberapa pengalihan lain untuk halaman penulis dan umpan RSS. Anda dapat menambahkan blok kode ini ke file functions.php tema Anda.

    add_action ('init', 'add_author_rules'); function add_author_rules () add_rewrite_rule ("writer / ([^ /] +) /" "," index.php? author_name = $ cocok [1] "," top "); add_rewrite_rule ("penulis / ([^ /] +) / halaman /? ([0-9] 1,) /?", "index.php? author_name = $ cocok [1] & halaman = $ cocok [2] "," atas "); add_rewrite_rule ("penulis / ([^ /] +) / (feed | rdf | rss | rss2 | atom) /?", "index.php? author_name = $ cocok [1] & umpan = $ cocok [2]", " teratas"); add_rewrite_rule ("penulis / ([^ /] +) / feed / (feed | rdf | rss | rss2 | atom) /?", "index.php? author_name = $ cocok [1] & umpan = $ cocok [2]" , "atas");  

    Fungsi ini dapat diakses bahkan tanpa menggunakan variabel $ wp_rewrite. Beberapa pengembang menyukai metode ini karena lebih sederhana daripada pengodean keras dengan properti kelas. Namun saya juga memperhatikan bahwa metode ini tidak selalu dapat diandalkan untuk beberapa instalasi WordPress. Sebenarnya ada opsi kedua untuk menambahkan aturan ini pada hook setelah mem-flushing .htaccess Anda (lihat di bawah).

    Basis Penulis menggunakan generate_rewrite_rules

    Menulis untuk metode ini, kita akan memerlukan kelas global $ wp_rewrite. Saya kemudian mengatur variabel baru bernama $ new_rules yang berisi array data asosiatif. Contoh kode saya di bawah ini hanya menulis ulang untuk bagian halaman penulis dasar.

    function menghasilkan_author_rewrite_rules () global $ wp_rewrite; $ new_rules = array ("writer / ([^ /] +) /?" => "index.php? author_name =". $ wp_rewrite-> preg_index (1)); $ wp_rewrite-> rules = $ new_rules + $ wp_rewrite-> rules;  

    Tetapi jika kita ingin memasukkan beberapa halaman dan RSS feed, kita dapat meningkatkan array. Anda memiliki opsi untuk membuat fungsi PHP untuk mendorong data array asosiatif yang mungkin agak terlalu rumit. Kami juga dapat membagi blok data melalui koma, berperilaku sebagai entitas terpisah dalam array. Lihat kode saya yang diperbarui lagi yang ditulis dalam file tema functions.php.

    function menghasilkan_author_rewrite_rules () global $ wp_rewrite; $ new_rules = array ("writer / ([^ /] +) /?" => "index.php? author_name =". $ wp_rewrite-> preg_index (1), "penulis / ([^ /] +) / halaman /? ([0-9] 1,) /? "=>" Index.php? Author_name = ". $ Wp_rewrite-> preg_index (1)." & Paged = ". $ Wp_rewrite-> preg_index (2), "writer / ([^ /] +) / (feed | rdf | rss | rss2 | atom) /?" => "index.php? author_name =". $ wp_rewrite-> preg_index (1). "& feed =". $ wp_rewrite-> preg_index (2), "writer / ([^ /] +) / feed / (feed | rdf | rss | rss2 | atom) /?" => "index.php? author_name =". $ wp_rewrite- > preg_index (1). "& feed =". $ wp_rewrite-> preg_index (2)); $ wp_rewrite-> rules = $ new_rules + $ wp_rewrite-> rules;  

    Ingatlah bahwa kedua metode ini tidak akan berfungsi sampai setelah Anda menyiram aturan penulisan ulang yang asli. Anda harus melakukan ini setiap kali Anda melakukan perubahan pada fungsi-fungsi ini, tetapi setelah itu aturan baru Anda akan tetap berlaku selamanya.

    Pembilasan Aturan Menulis Ulang

    Setiap kali Anda memperbarui kode penulisan ulang URL, perubahan itu tidak segera diterapkan. Anda harus menghapus aturan .htaccess menulis ulang sehingga kode baru Anda akan ditambahkan. Namun melakukan ini pada setiap halaman init sangat boros karena menulis ke database dan memperbarui file .htaccess.

    Metode yang lebih baik adalah dengan mengakses halaman permalink Anda di panel admin dan menyimpan kembali perubahan. Ini selalu memanggil flush_rewrite_rules sehingga Anda tidak perlu khawatir tentang pengguna di frontend yang mengalami masalah pemuatan. Dan hanya perlu satu waktu untuk menyimpan ulang halaman dan memperbarui semua aturan di sistem Anda. Tetapi jika ini tidak berhasil, Anda dapat mencoba menelepon $ wp_rewrite-> flush_rules ();

    Menggunakan Aturan non-WP

    Di dalam $ wp_rewrite kelas kami memiliki akses ke puluhan properti. Salah satu opsi yang lebih signifikan adalah $ wp_rewrite-> non_wp_rules yang mengumpulkan berbagai arahan ulang yang tidak mengenai file index.php.

    Ini sebenarnya paling sering digunakan dalam pengembangan plugin WordPress. Anda dapat mendorong jenis URL khusus tertentu (seperti / calendar / june-2012 /) ke bagian belakang situs web Anda (/wp-content/plugins/calendarplug/myscript.php). Tapi tentu saja ada kegunaan lebih lanjut untuk array asosiatif ini dari aturan penulisan ulang kustom selain plugin. Saya telah memberikan contoh yang sangat baik dalam konteks di bawah ini.

    Masking File Tema Anda

    Ini adalah saran umum yang sering saya lihat di papan diskusi WordPress. Idealnya kami ingin merujuk beberapa file di dalam / wp-content / tema / mitos / folder dengan URL yang lebih elegan. Perhatikan bahwa ini akan membutuhkan set penulisan ulang WordPress yang berbeda untuk mengubah struktur direktori.

    Sistem penulisan ulang internal WordPress selalu mendorong konten ke arah file perutean tunggal. Dalam kasus default, kami menggunakan index.php bersama dengan data string kueri tambahan apa pun. Tetapi untuk menyembunyikan direktori templat standar kami (/ wp-content / tema / mytheme / *) kita perlu menampilkan banyak file yang berbeda.

    add_action ('menghasilkan_rewrite_rules', 'themes_dir_add_rewrites'); function themes_dir_add_rewrites () $ theme_name = next (explode ('/ themes /', get_stylesheet_directory ())); global $ wp_rewrite; $ new_non_wp_rules = array ('css /(.*)' => 'wp-content / themes /'. $ theme_name. '/ css / $ 1', 'js /(.*)' => 'wp-content / tema / '. $ theme_name.' / js / $ 1 ',' images / wordpress-urls-rewrite /(.*) '=>' wp-content / themes / '. $ theme_name.' / images / wordpress-urls-rewrite / $ 1 ',); $ wp_rewrite-> non_wp_rules + = $ new_non_wp_rules;  

    Saya telah menulis fungsi baru themes_dir_add_rewrites () untuk menarik semua konten utama dari URL yang lebih panjang ini dan mengarahkannya di backend. Perhatikan bahwa kami menggunakan properti misterius lain dari kelas $ wp_rewrite yang bernama non_wp_rules. Menurut dokumen, ini adalah aturan yang tidak mengarahkan ke file index.php WP dan akan ditangani di ujung server.

    Apa yang hebat tentang aturan non-WP ini adalah Anda masih dapat mengelola metode URL yang lebih lama dengan mudah. Tidak ada yang menghentikan Anda dari menautkan ke:

    /wp-content/themes/mytheme/images/wordpress-urls-rewrite/logo.jpg.

    Tapi itu terlihat jauh lebih baik jika Anda dapat referensi:

    /images/wordpress-urls-rewrite/logo.jpg sebagai gantinya.

    Alat & Plugin Bermanfaat

    Hanya ada beberapa alat yang dapat Anda manfaatkan jika Anda terjebak dengan pengkodean URL cantik Anda sendiri. Proses ini sangat sulit untuk dipahami, jadi jangan berkecil hati jika Anda berjuang selama beberapa minggu. Saya merasa konten akan semakin mudah karena Anda menghabiskan lebih banyak waktu berlatih.

    Tetapi untuk memulai, periksa beberapa alat & plugin penulisan ulang yang berguna ini. Anda mungkin tidak akan membutuhkan semuanya tetapi itu bagus untuk menemukan basis pengembang besar yang bekerja di sekitar penulisan ulang WP.

    Monkeyman Rewrite Analyzer

    Ketika pertama kali beralih ke aturan penulisan ulang, plugin ini harus dimiliki. Sebenarnya tidak mengubah aturan apa pun untuk situs web Anda - itu hanya memungkinkan Anda untuk menguji kode dan melihat pengalihan mana yang menuju halaman mana. Bahkan akan berfungsi untuk menguji variabel kueri khusus untuk semua jenis posting kustom.

    Penampil AskApache RewriteRules

    Ini mirip dengan plugin di atas kecuali itu tidak membiarkan Anda menguji aturan Anda sendiri. Sebaliknya plugin ini akan menampilkan semua aturan WP default situs web Anda dan ke mana mereka mengarahkan. Ini akan mencakup semua properti utama $ wp_rewrite seperti pengaturan permalink Anda dan basis halaman / kategori / tag.

    Kontrol htaccess WP

    Di sini Anda memiliki serangkaian aturan berbeda untuk membuat pengalihan halaman baru. Plugin ini memiliki panel admin sendiri tempat Anda dapat mengedit variabel seperti basis penulis Anda, basis halaman, dan bahkan menambahkan aturan .htaccess kustom Anda sendiri.

    Metode ini berbeda dibandingkan dengan membangun Anda sendiri menggunakan wp_rewrite. Namun mungkin lebih mudah bagi teknisi yang benar-benar mengetahui server web dan merasa lebih nyaman menulis langsung ke .htaccess.

    Penulisan Aturan Ulang

    Ini sebenarnya bukan plugin WordPress, tetapi jelas merupakan alat yang berguna untuk menyimpan file. Anda dapat menyalin aturan penulisan ulang dan mengujinya untuk situs web Anda tanpa harus mengedit file .htaccess Anda. Ini adalah metode yang sempurna untuk menghilangkan bug dari sintaks Anda sebelum meluncurkan langsung di Web.

    DW Menulis Ulang

    DW Rewrite adalah plugin yang sangat sederhana yang membuat 3 URL cantik yang unik segera setelah instalasi. Secara default ini akan mengubah tautan admin, login, dan registrasi menjadi / admin, /masuk, dan /daftar masing-masing.

    Ini bagus jika Anda perlu perbaikan cepat untuk blog yang memiliki banyak penulis. Ini secara khusus akan menyembunyikan tautan pendaftaran WordPress yang rumit dan memalukan (/wp-login.php?action=register).

    Kesimpulan

    Saya harap tutorial ini dapat memberikan beberapa contoh untuk membuat Anda berpikir tentang penulisan ulang WordPress. CMS sangat populer dan pengembang masih menghasilkan fitur-fitur baru setiap hari. Menyesuaikan URL Anda sendiri adalah bagian besar dari fungsionalitas berbasis pengguna. Ini memberi situs web Anda kehadiran unik dan merek dibandingkan dengan opsi default.

    Jika Anda mengalami masalah dengan aturan penulisan ulang, jangan pernah sulit untuk membatalkan kerusakan. Dengan hanya menghapus kode fungsi dan mem-flushing aturan .htaccess Anda, sepertinya tidak ada yang berubah. Pastikan untuk memeriksa beberapa artikel serupa lainnya yang dapat Anda temukan pada topik. Dan jika Anda memiliki pertanyaan atau komentar, Anda dapat membaginya dengan kami di area posting diskusi.