Ricerca nel sito web

Funzioni WordPress collegabili


Hai mai sentito parlare delle funzioni collegabili di WordPress? In caso contrario, questo articolo dovrebbe attirare la tua attenzione. In due parole, le funzioni collegabili sono funzioni principali di WordPress che è possibile sovrascrivere. Tutte queste funzioni si trovano in un unico file: “wp-includes/pluggable.php“. Le funzioni collegabili sono state introdotte in WordPress 1.5.1, ma nelle versioni più recenti di WordPress questo metodo non viene più utilizzato. Le funzioni recenti ora utilizzano filtri sul loro output. Ma puoi comunque sovrascrivere le funzioni collegabili, e questo è ciò che vorrei trattare in questo post.

Quali funzioni?

Le funzioni collegabili sono:

  • autore_reindirizzamento
  • 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_controlla_password
  • wp_clear_auth_cookie
  • wp_create_nonce
  • wp_generate_auth_cookie
  • wp_genera_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_reindirizzamento
  • wp_safe_redirect
  • wp_salt
  • wp_sanitize_redirect
  • wp_set_auth_cookie
  • wp_set_current_user
  • wp_set_password
  • wp_testo_diff
  • wp_validate_auth_cookie
  • wp_validate_redirect
  • wp_verify_nonce

Puoi fare clic sul nome di ciascuna funzione per accedere alla relativa pagina del codice.

Come sovrascrivere le funzioni collegabili

Beh, questo è piuttosto semplice, tutto quello che devi fare è creare un file all'interno dei tuoi plugin contenente un'istruzione "if (!function_exists())..." e quindi ridefinire la funzione. Ti consiglio vivamente di copiare e incollare la funzione originale all'avvio. In questo modo sei sicuro che la funzione funzionerà. Ecco un esempio vuoto:

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;

Vorrei parlare della funzione “wp_notify_postauthor()”. Questo è responsabile dell'invio di un'e-mail agli autori del post quando viene aggiunto un nuovo commento. In uno dei miei plugin, WordPress Issues Manager, avevo bisogno di disabilitare questa notifica, ma solo un tipo di post personalizzato specifico. Quindi, ho copiato l'intera funzione e ho semplicemente aggiunto questo:

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;

È semplice, ma funziona alla grande senza dover apportare enormi modifiche o creare una funzione completamente personalizzata collegata a un'azione personalizzata.

wp_mail()

Come hai visto nell'elenco delle funzioni collegabili, wp_mail() è una funzione collegabile. Questa funzione è quella utilizzata per l'invio delle email. Ovunque in WordPress quando viene inviata un'e-mail utilizza questa funzione. Ecco perché personalizzarlo può essere molto interessante. Ad esempio, potresti utilizzare un modello HTML predefinito per tutte le email inviate dalla tua installazione WordPress.

Potresti anche inviare una copia nascosta di ogni messaggio a una email specifica per avere una sorta di backup (credimi, può essere utile quando qualcuno ti dice che non ha ricevuto il messaggio!).

wp_authenticate()

Potresti anche modificare wp_authenticate() e aggiungere alcuni parametri aggiuntivi per rafforzare la sicurezza sul tuo sito (ad esempio attacchi di forza bruta).

auth_redirect()

Questa funzione è quella che controlla se un utente ha effettuato l'accesso e, in caso contrario, lo reindirizza alla pagina di accesso. Sarebbe abbastanza semplice sovrascrivere la funzione e reindirizzare l'utente a una pagina personalizzata, anziché alla pagina di accesso predefinita (ad esempio se desideri nascondere la cartella wp-admin).

wp_generate_password()

Questa funzione è quella che genera automaticamente le password. Onestamente non hai davvero bisogno di modificarlo, ma ora che sai cosa sono gli attacchi di forza bruta, potresti essere interessato a creare password più forti. Bene, questa è la funzione da migliorare.

Conclusione

Per concludere questo breve post sulle funzioni collegabili di WordPress, vorrei sottolineare il fatto che le nuove funzioni non funzionano più così. Come ho scritto sopra ora utilizzano i filtri. Ma le funzioni collegabili sono funzioni importanti soprattutto quando si creano plugin davvero specifici. Ma fai attenzione quando usi le funzioni collegabili. Se la funzione appena creata non funziona perfettamente può danneggiare una parte del tuo sito web (in termini di funzionalità), quindi testale in tutte le condizioni.