Fungsi WordPress Boleh Pluggable
Pernahkah anda mendengar tentang WordPress Pluggable Functions? Jika tidak, maka artikel ini harus menarik perhatian anda. Dalam dua perkataan fungsi boleh pasang ialah fungsi teras WordPress yang boleh anda tolak. Semua fungsi ini terletak dalam satu fail tunggal: “wp-includes/pluggable.php“. Fungsi boleh pasang diperkenalkan dalam WordPress 1.5.1, tetapi dalam versi WordPress terbaharu kaedah ini tidak digunakan lagi. Fungsi terkini kini menggunakan penapis pada outputnya. Tetapi anda masih boleh mengatasi fungsi boleh pasang, dan inilah yang saya ingin bincangkan dalam siaran ini.
Fungsi yang mana?
Fungsi boleh pasang ialah:
- auth_redirect
- check_admin_referer
- semak_ajax_referer
- get_avatar
- get_currentuserinfo
- get_user_by_email
- dapatkan_pengguna_oleh
- get_userdatabylogin
- get_userdata
- is_user_login_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 boleh mengklik pada nama setiap fungsi untuk mengakses halaman codexnya.
Cara Mengatasi Fungsi Boleh Palam
Ini agak mudah, anda hanya perlu mencipta fail dalam pemalam anda yang mengandungi pernyataan “if ( !function_exists() )…” dan kemudian tentukan semula fungsi tersebut. Saya amat mengesyorkan anda untuk menyalin dan menampal fungsi asal apabila anda mula. Ini adalah cara anda pasti bahawa fungsi itu akan berfungsi. Berikut 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 bercakap tentang fungsi "wp_notify_postauthor()". Ini adalah orang yang bertanggungjawab menghantar e-mel kepada pengarang siaran apabila ulasan baharu ditambahkan. Dalam salah satu pemalam saya, Pengurus Isu WordPress, saya perlu melumpuhkan pemberitahuan ini, tetapi jenis siaran tersuai khusus sahaja. Jadi, saya menyalin keseluruhan fungsi, dan hanya menambah 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 mudah, tetapi ia berfungsi dengan baik tanpa perlu membuat perubahan besar atau mencipta fungsi tersuai penuh yang disambungkan kepada tindakan tersuai.
wp_mail()
Seperti yang anda lihat dalam senarai fungsi boleh pasang, wp_mail() ialah fungsi boleh pasang. Fungsi ini adalah yang digunakan untuk menghantar e-mel. Di mana-mana sahaja di WordPress apabila e-mel dihantar ia menggunakan fungsi ini. Itulah sebabnya menyesuaikannya boleh menjadi sangat menarik. Contohnya anda boleh menggunakan templat lalai html untuk semua e-mel yang dihantar daripada pemasangan WordPress anda.
Anda juga boleh menghantar salinan tersembunyi setiap mesej ke e-mel tertentu untuk mempunyai sejenis sandaran (percayalah ini berguna apabila seseorang memberitahu anda dia tidak menerima mesej itu!).
wp_authenticate()
Anda juga boleh mengubah suai wp_authenticate() dan menambahkan beberapa parameter tambahan untuk menguatkuasakan keselamatan di tapak anda (serangan kekerasan sebagai contoh).
auth_redirect()
Fungsi ini ialah fungsi yang menyemak sama ada pengguna telah log masuk, dan jika tidak ia mengubah hala mereka ke halaman log masuk. Itu agak mudah untuk mengatasi fungsi dan mengubah hala pengguna ke halaman tersuai, bukannya halaman log masuk lalai (contohnya jika anda ingin menyembunyikan folder wp-admin).
wp_generate_password()
Fungsi ini ialah fungsi yang menjana kata laluan secara automatik. Sejujurnya anda tidak perlu mengubahnya, tetapi sekarang setelah anda tahu apa itu serangan brute force, anda mungkin berminat untuk mencipta kata laluan yang lebih kukuh. Nah, ini adalah fungsi untuk menambah baik.
Kesimpulan
Untuk menyimpulkan catatan ringkas tentang fungsi boleh pasang WordPress ini, saya ingin menunjukkan fakta bahawa fungsi baharu tidak berfungsi seperti itu lagi. Seperti yang saya tulis di atas, mereka kini menggunakan penapis. Tetapi fungsi boleh pasang adalah fungsi penting khususnya apabila mencipta pemalam yang benar-benar khusus. Tetapi berhati-hati apabila menggunakan fungsi boleh pasang. Jika fungsi yang baru dibuat tidak berfungsi dengan sempurna, ia boleh merosakkan sebahagian daripada tapak web anda (dari segi kefungsian), jadi sila uji fungsi tersebut dalam semua keadaan.
