Takılabilir WordPress İşlevleri


WordPress Takılabilir İşlevlerini hiç duydunuz mu? Değilse, bu makale dikkatinizi çekmelidir. İki kelimeyle takılabilir işlevler, geçersiz kılabileceğiniz WordPress temel işlevleridir. Tüm bu işlevler tek bir dosyada bulunur: “wp-includes/pluggable.php“. Takılabilir işlevler WordPress 1.5.1'de tanıtıldı, ancak WordPress'in en son sürümlerinde bu yöntem artık kullanılmıyor. Son işlevler artık çıktılarında filtreler kullanıyor. Ancak yine de takılabilir işlevleri geçersiz kılabilirsiniz ve bu yazıda ele almak istediğim şey bu.

Hangi İşlevler?

Takılabilir işlevler şunlardır:

  • kimlik_yönlendirmesi
  • check_admin_referer
  • check_ajax_referer
  • get_avatar
  • get_currentuserinfo
  • get_user_by_email
  • get_user_by
  • get_userdatabylogin
  • get_userdata
  • 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

Kodeks sayfasına erişmek için her işlevin adına tıklayabilirsiniz.

Takılabilir İşlevler Nasıl Geçersiz Kılır?

Aslında bu oldukça basit, tek yapmanız gereken eklentilerinizde “if ( !function_exists() )…” ifadesini içeren bir dosya oluşturmak ve ardından işlevi yeniden tanımlamak. Başladığınızda orijinal işlevi kopyalayıp yapıştırmanızı şiddetle tavsiye ederim. Bu, fonksiyonun çalışacağından emin olmanızın yoludur. İşte boş bir örnek:

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;

“wp_notify_postauthor()” fonksiyonundan bahsetmek istiyorum. Yeni bir yorum eklendiğinde gönderinin yazarlarına e-posta göndermekten sorumlu kişi budur. Eklentilerimden biri olan WordPress Sorun Yöneticisi'nde bu bildirimi devre dışı bırakmam gerekiyordu, ancak yalnızca belirli bir özel gönderi türünü devre dışı bırakmam gerekiyordu. Böylece tüm fonksiyonu kopyaladım ve şunu ekledim:

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;

Bu basit, ancak büyük değişiklikler yapmaya veya özel bir eyleme bağlı tam bir özel işlev oluşturmaya gerek kalmadan harika çalışıyor.

wp_mail()

Takılabilir işlevler listesinde gördüğünüz gibi, wp_mail() takılabilir bir işlevdir. Bu işlev e-posta göndermek için kullanılan işlevdir. WordPress'in herhangi bir yerinde bir e-posta gönderildiğinde bu işlevi kullanır. Bu yüzden kişiselleştirmek çok ilginç olabilir. Örneğin, WordPress kurulumunuzdan gönderilen tüm e-postalar için varsayılan bir html şablonu kullanabilirsiniz.

Ayrıca bir tür yedekleme sağlamak için her mesajın gizli bir kopyasını belirli bir e-postaya gönderebilirsiniz (güvenin bana, biri size mesajı almadığını söylediğinde bu yararlı olabilir!).

wp_authenticate()

Ayrıca wp_authenticate() işlevini değiştirebilir ve sitenizde güvenliği sağlamak için bazı ekstra parametreler ekleyebilirsiniz (örneğin kaba kuvvet saldırıları).

auth_redirect()

Bu işlev, bir kullanıcının oturum açmış olup olmadığını kontrol eden ve değilse, onu oturum açma sayfasına yönlendiren işlevdir. Bu, işlevi geçersiz kılmak ve kullanıcıyı varsayılan giriş sayfası yerine özel bir sayfaya yönlendirmek oldukça kolay olacaktır (örneğin, wp-admin klasörünü gizlemek istiyorsanız).

wp_generate_password()

Bu işlev, parolaları otomatik olarak oluşturan işlevdir. Dürüst olmak gerekirse, gerçekten değiştirmenize gerek yok, ancak artık kaba kuvvet saldırılarının ne olduğunu bildiğinize göre, daha güçlü şifreler oluşturmak ilginizi çekebilir. Peki, bu geliştirilecek fonksiyondur.

Çözüm

WordPress'in takılabilir işlevleri hakkındaki bu kısa yazımı sonlandırırken, yeni işlevlerin artık bu şekilde çalışmadığını belirtmek isterim. Yukarıda yazdığım gibi artık filtre kullanıyorlar. Ancak takılabilir işlevler, özellikle gerçekten spesifik eklentiler oluştururken önemli işlevlerdir. Ancak takılabilir işlevleri kullanırken dikkatli olun. Yeni oluşturulan işlev mükemmel çalışmıyorsa web sitenizin bir bölümünü (işlevsellik açısından) bozabilir, bu nedenle lütfen bunları her koşulda test edin.