Fungsi WordPress yang Dapat Dicolokkan
Pernahkah Anda mendengar tentang Fungsi WordPress Pluggable? Jika belum, maka artikel ini patut menarik perhatian Anda. Singkatnya, fungsi pluggable adalah fungsi inti WordPress yang dapat Anda ganti. Semua fungsi ini ditempatkan dalam satu file: “wp-includes/pluggable.php“. Fungsi pluggable diperkenalkan di WordPress 1.5.1, namun di versi terbaru WordPress metode ini tidak digunakan lagi. Fungsi terkini sekarang menggunakan filter pada keluarannya. Namun Anda masih dapat mengganti fungsi pluggable, dan inilah yang ingin saya bahas dalam postingan ini.
Fungsi yang mana?
Fungsi yang dapat dicolokkan adalah:
- auth_redirect
- check_admin_referer
- check_ajax_referer
- dapatkan_avatar
- get_currentuserinfo
- get_user_by_email
- dapatkan_pengguna_oleh
- get_userdatabylogin
- dapatkan_data pengguna
- is_user_logged_in
- wp_authenticate
- wp_check_password
- wp_clear_auth_cookie
- wp_create_nonce
- wp_generate_auth_cookie
- wp_generate_password
- wp_get_current_user
- wp_hash_password
- wp_hash
- wp_logout
- wp_mail
- wp_new_user_notification
- wp_nonce_tick
- wp_notify_moderator
- wp_notify_postauthor
- wp_parse_auth_cookie
- wp_password_change_notification
- wp_rand
- wp_redirect
- wp_safe_redirect
- wp_salt
- wp_sanitize_redirect
- wp_set_auth_cookie
- wp_set_current_user
- wp_set_password
- wp_text_diff
- wp_validate_auth_cookie
- wp_validate_redirect
- wp_verify_nonce
Anda dapat mengklik nama setiap fungsi untuk mengakses halaman kodeksnya.
Cara Mengganti Fungsi Pluggable
Ini cukup sederhana, yang harus Anda lakukan adalah membuat file di dalam plugin Anda yang berisi pernyataan “if ( !function_exists() )…” dan kemudian mendefinisikan ulang fungsinya. Saya sangat menyarankan Anda untuk menyalin dan menempelkan fungsi asli saat Anda memulai. Ini adalah cara Anda yakin bahwa fungsinya akan berfungsi. Ini adalah contoh kosong:
if ( ! function_exists('wp_notify_postauthor') ) :
/**
* Notify an author of a comment/trackback/pingback to one of their posts.
*
* @since 1.0.0
*
* @param int $comment_id Comment ID
* @param string $comment_type Optional. The comment type either 'comment' (default), 'trackback', or 'pingback'
* @return bool False if user email does not exist. True on completion.
*/
function wp_notify_postauthor( $comment_id, $comment_type = '' ) {
/* This is where you redefine the function */
}
endif;Saya ingin berbicara tentang fungsi “wp_notify_postauthor()”. Ini adalah orang yang bertanggung jawab mengirim email ke penulis postingan ketika komentar baru ditambahkan. Di salah satu plugin saya, WordPress Issues Manager, saya perlu menonaktifkan notifikasi ini, tetapi hanya jenis posting khusus tertentu. Jadi, saya menyalin seluruh fungsi, dan menambahkan ini:
if ( ! function_exists('wp_notify_postauthor') ) :
/**
* Notify an author of a comment/trackback/pingback to one of their posts.
*
* @since 1.0.0
*
* @param int $comment_id Comment ID
* @param string $comment_type Optional. The comment type either 'comment' (default), 'trackback', or 'pingback'
* @return bool False if user email does not exist. True on completion.
*/
function wp_notify_postauthor( $comment_id, $comment_type = '' ) {
if( $post->post_type != 'issue'):
/* content of the original function */
endif;
}
endif;Itu sederhana, namun berfungsi dengan baik tanpa harus membuat perubahan besar atau membuat fungsi kustom penuh yang terhubung ke tindakan kustom.
wp_mail()
Seperti yang Anda lihat di daftar fungsi yang dapat dicolokkan, wp_mail() adalah fungsi yang dapat dicolokkan. Fungsi ini digunakan untuk mengirim email. Di mana pun di WordPress ketika email dikirim, ia menggunakan fungsi ini. Itu sebabnya menyesuaikannya bisa menjadi sangat menarik. Misalnya Anda bisa menggunakan template default html untuk semua email yang dikirim dari instalasi WordPress Anda.
Anda juga dapat mengirim salinan tersembunyi dari setiap pesan ke email tertentu untuk mendapatkan semacam cadangan (percayalah ini bisa berguna ketika seseorang memberi tahu Anda bahwa dia tidak menerima pesan tersebut!).
wp_authenticate()
Anda juga dapat memodifikasi wp_authenticate() dan menambahkan beberapa parameter tambahan untuk menegakkan keamanan di situs Anda (misalnya serangan brute force).
auth_redirect()
Fungsi ini adalah fungsi yang memeriksa apakah pengguna sudah login, dan jika belum maka akan mengarahkan mereka ke halaman login. Akan sangat mudah untuk mengganti fungsi dan mengarahkan pengguna ke halaman khusus, bukan halaman login default (misalnya jika Anda ingin menyembunyikan folder wp-admin).
wp_generate_password()
Fungsi ini adalah fungsi yang menghasilkan kata sandi secara otomatis. Sejujurnya Anda tidak perlu memodifikasinya, tetapi sekarang setelah Anda mengetahui apa itu serangan brute force, Anda mungkin tertarik untuk membuat kata sandi yang lebih kuat. Nah, inilah fungsinya untuk meningkatkan.
Kesimpulan
Untuk mengakhiri postingan singkat tentang fungsi pluggable WordPress ini, saya ingin menunjukkan fakta bahwa fungsi baru tidak berfungsi seperti itu lagi. Seperti yang saya tulis di atas, mereka sekarang menggunakan filter. Namun fungsi pluggable adalah fungsi yang penting khususnya saat membuat plugin yang sangat spesifik. Namun hati-hati saat menggunakan fungsi pluggable. Jika fungsi yang baru dibuat tidak berfungsi dengan sempurna, hal ini dapat merusak sebagian situs web Anda (dalam hal fungsionalitas), jadi harap uji fungsi tersebut di semua kondisi.
