¿Alguna vez has oído hablar de WordPress? Funciones conectables? Si no es así, este artículo debería llamar su atención. En dos palabras, las funciones conectables son WordPress funciones principales que puede anular. Todas estas funciones se encuentran en un solo archivo: «wp-includes / pluggable.php“. Las funciones conectables se introdujeron en WordPress 1.5.1, pero en las versiones más recientes de WordPress este método ya no se usa. Las funciones recientes ahora usan filtros en su salida. Pero aún puede anular las funciones conectables, y esto es lo que me gustaría cubrir en esta publicación.
¿Qué funciones?
Las funciones conectables son:
- auth_redirect
- 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
Puede hacer clic en el nombre de cada función para acceder a su página de códice.
Cómo anular funciones conectables
Bueno, esto es bastante simple, todo lo que tienes que hacer es crear un archivo dentro de tus complementos que contenga una declaración «if (! Function_exists ()) …» y luego volver a definir la función. Le recomiendo encarecidamente que copie y pegue la función original cuando comience. De esta manera, está seguro de que la función funcionará. Aquí hay un ejemplo vacío:
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;
Me gustaría hablar sobre la función «wp_notify_postauthor ()». Este es el responsable de enviar un correo electrónico a los autores de la publicación cuando se agrega un nuevo comentario. En uno de mis complementos, el Administrador de problemas de WordPress, necesitaba deshabilitar esta notificación, pero solo un tipo de publicación personalizada específica. Entonces, copié toda la función y simplemente agregué esto:
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;
Eso es simple, pero funciona muy bien sin tener que hacer grandes cambios o crear una función personalizada completa enganchada a una acción personalizada.
wp_mail ()
Como vio en la lista de funciones conectables, wp_mail () es una función conectable. Esta función es la que se utiliza para enviar correos electrónicos. En cualquier lugar de WordPress, cuando se envía un correo electrónico, se utiliza esta función. Por eso personalizarlo puede resultar muy interesante. Por ejemplo, puede usar una plantilla html predeterminada para todos los correos electrónicos enviados desde su instalación de WordPress.
También puede enviar una copia oculta de cada mensaje a un correo electrónico específico para tener una especie de copia de seguridad (créame, esto puede ser útil cuando alguien le dice que no recibió el mensaje).
wp_authenticate ()
También puede modificar wp_authenticate () y agregar algunos parámetros adicionales para reforzar la seguridad en su sitio (ataques de fuerza bruta, por ejemplo).
auth_redirect ()
Esta función es la que comprueba si un usuario ha iniciado sesión y, en caso contrario, lo redirige a la página de inicio de sesión. Sería bastante fácil anular la función y redirigir al usuario a una página personalizada, en lugar de la página de inicio de sesión predeterminada (por ejemplo, si desea ocultar la carpeta wp-admin).
wp_generate_password ()
Esta función es la que genera automáticamente las contraseñas. Honestamente, no necesita modificarlo, pero ahora que sabe qué son los ataques de fuerza bruta, podría estar interesado en crear contraseñas más seguras. Bueno, esta es la función a mejorar.
Conclusión
Para concluir esta breve publicación sobre las funciones conectables de WordPress, me gustaría señalar el hecho de que las nuevas funciones ya no funcionan así. Como escribí anteriormente, ahora están usando filtros. Pero las funciones conectables son funciones importantes en particular cuando se crean complementos realmente específicos. Pero tenga cuidado al usar funciones conectables. Si la función recién creada no funciona perfectamente, puede romper una parte de su sitio web (en términos de funcionalidad), así que pruébelos en todas las condiciones.