Entendiendo las funciones conectables de WordPress y su uso

WordPress proporciona una colección de funciones principales llamadas funciones conectables. Como su nombre lo indica, podemos agregar código personalizado a estas funciones para anular y mejorar su funcionalidad de acuerdo con nuestros requisitos..

El poder real de las funciones conectables viene con la capacidad de declarar funciones personalizadas y hacerlas conectables para otros desarrolladores y diseñadores. Es una técnica muy utilizada para ampliar la funcionalidad y las características de los temas infantiles de WordPress..

A lo largo de este artículo vamos a explorar el concepto de funciones conectables y su uso..


Usando funciones conectables en WordPress Core

Las funciones conectables en el núcleo de WordPress se encuentran en el pluggable.php archivo dentro de la wp-incluye directorio. Puede encontrar la lista completa de funciones conectables en Funciones conectables en el Códice de WordPress. Primero, le mostraré una lista de funciones conectables que se pueden usar en casi todos los sitios web de WordPress.

  • wp_logout - Se utiliza para desconectar al usuario del sistema. Puede realizar tareas como eliminar variables de sesión personalizadas y registrar el tiempo de sesión del usuario en la base de datos escribiendo un archivo personalizado wp_logout función.
  • wp_mail - Es la función conectable más popular de todas. Puede modificar esta función para usar una plantilla de correo electrónico especial para sus correos electrónicos o cualquier otra propiedad relacionada con el envío de correos electrónicos..
  • wp_new_user_notification - se puede utilizar para personalizar el formato del correo electrónico enviado justo después de que un nuevo usuario se haya registrado en el sistema.
  • auth_redirect - se utiliza para redirigir a un usuario a la página de inicio de sesión si el usuario aún no ha iniciado sesión. Puede usar esta función para mostrar un mensaje al usuario que menciona que el usuario debe estar autenticado para acceder a la página solicitada.
  • wp_password_change_notification - se utiliza para enviar un correo electrónico cuando se cambia la contraseña. Puede agregar información adicional a este correo electrónico utilizando esta función.

Ahora veamos cómo podemos conectar una función personalizada en una de las funciones anteriores. Voy a usar wp_logout aquí. Primero tienes que abrir el pluggable.php archivar y copiar los contenidos de la wp_logout función. Luego cree una nueva función en su archivo con el mismo nombre e incluya el código. La siguiente es la función por defecto para wp_logout:

 if (! function_exists ('wp_logout')) / ** * Desconecta al usuario actual. * * @since 2.5.0 * / function wp_logout () wp_clear_auth_cookie (); do_action ('wp_logout'); 

Ahora veamos la versión anulada de la wp_logout función:

 if (! function_exists ('wp_logout')) / ** * Desconecta al usuario actual. * * @since 2.5.0 * / function wp_logout () remove_sessions (); // Llamada de función personalizada wp_clear_auth_cookie (); do_action ('wp_logout');  function remove_sessions () // Eliminar la sesión personalizada y la información de la cookie

Puedes ver que he modificado el wp_logout Funciona en mi plugin y añade un código personalizado. Este es el proceso que debe seguir para anular una función conectable.

Lo importante en el código anterior es el if (! function_exists ('wp_logout')) Línea definida en la parte superior. Esta línea hace que su función sea conectable al verificar si una función llamada wp_logout Existe y carga la función personalizada. De lo contrario, cargará la función por defecto en pluggable.php.

Es posible que se pregunte por qué se llama a la función en el complemento en lugar de a la predeterminada, incluso cuando ambas funciones tienen el prefijo exista función ('wp_logout') condición. Esto se debe al orden de ejecución de la acción de WordPress, que explicaré más adelante..

Es posible saltarse exista función Compruebe las funciones personalizadas?

Sí, es posible. Pero tendrá problemas en los siguientes dos escenarios si omite la verificación.

  • Activación de plugin - Cuando se invalida una función conectable dentro de un complemento sin la comprobación y se intenta activar la función, se generará un error al mencionar "No se puede volver a declarar wp_logout ()". Si elimina el cheque después de la activación, funcionará correctamente..
  • Función duplicada en otro plugin. - Existe la posibilidad de que otro escritor de complementos anule la misma función sin la verificación de condición. En tales casos, habrá un conflicto, ya que ambas funciones estarán en el mismo nombre y, por lo tanto, generarán un error..

El riesgo aquí es que cualquiera puede anular su función sin su conocimiento. Creo que siempre debe tener la verificación de condición antes de la función para evitar conflictos.

Ahora sabes cómo trabajar con funciones conectables. Así que veamos dónde podemos colocar las funciones conectables..


Proceso de ejecución de la función conectable

He visto muchos desarrolladores que incluyen funciones conectables en el funciones.php Archivo de un tema y no obteniendo los resultados que esperan. Debe tener un conocimiento adecuado del orden de ejecución de la acción de WordPress antes de crear funciones conectables.

Puede encontrar el procedimiento de ejecución completo en Referencia de acción en el Códice de WordPress. Extraeré las acciones necesarias para mis explicaciones en la pantalla de abajo..

La imagen de arriba muestra el proceso general de ejecución de la acción de WordPress. Puede variar en el tipo de funcionalidad utilizada en su complemento y estas acciones pueden llamarse varias veces durante una solicitud.

Debería ver claramente que los complementos "imprescindibles" se cargan primero, seguidos de los complementos activos y las funciones conectables. Finalmente se carga el tema. Entonces, de acuerdo con el proceso, podemos hacer las siguientes conclusiones sobre la creación de funciones conectables.

  • Todas las funciones conectables personalizadas deben colocarse dentro de los complementos ya que los complementos se cargan primero.
  • Si los complementos no contienen funciones conectables, se utilizará la función principal predeterminada.
  • No debe reemplazar las funciones principales de conexión en sus archivos de temas ya que los temas se cargan después de las funciones conectables. Por lo tanto se utilizará la función por defecto..

Ahora sabes dónde poner tus funciones enchufables. La siguiente pregunta será qué sucederá cuando dos o más complementos anulen la misma función principal. Está fuera de su control, ya que el primer complemento activado tendrá preferencia sobre los demás. Por lo tanto, si se activa otro complemento antes de su complemento, no se utilizará su función conectable.

Puede ver el orden del complemento activo utilizando el valor del active_plugins Tecla en la tabla de opciones de WordPress..


Importancia de las funciones conectables

La anulación de las funciones acoplables del núcleo nos permite ampliar la funcionalidad predeterminada y, por lo tanto, es muy útil en ciertos escenarios. Pero el valor real de las funciones conectables aparece cuando crea sus propias funciones conectables. Estas funciones no tendrán ninguna relación con las funciones básicas..

En general, las nuevas funciones conectables se definen en los temas de WordPress para ampliar su funcionalidad y permitir que los desarrolladores de temas secundarios los anulen. Así que vamos a ver cómo podemos definir funciones personalizables enchufables.


Creación de funciones personalizables conectables

Primero, tendrá que crear la función con una verificación de existencia, como hicimos con las funciones básicas. El siguiente código muestra una función conectable de ejemplo para su tema:

 if (! function_exists ('change_header')) function change_header () // Código para cambiar el encabezado del tema

Anteriormente mencioné no crear funciones conectables en archivos de temas debido a la dependencia con funciones conectables predeterminadas. En este escenario, estamos creando nuevas funciones conectables y, por lo tanto, no habrá dependencias. Así que el proceso de ejecución de acciones no tendrá un efecto general..


Cuándo usar funciones conectables?

Creamos temas secundarios para permitir que los desarrolladores y diseñadores amplíen el diseño y las características del tema principal sin cambiar el código fuente del tema original. La forma básica de extensión se puede proporcionar duplicando el CSS del tema principal dentro del tema secundario y realizando las personalizaciones necesarias..

Además de los estilos CSS, los temas pueden contener funciones útiles, como códigos cortos, plantillas de página y filtros personalizados para proporcionar elementos de diseño. Como desarrolladores de temas, debemos proporcionar las capacidades máximas para los desarrolladores de temas secundarios. Podemos usar eficazmente las funciones conectables para permitir a los desarrolladores de temas secundarios modificar estas funcionalidades..

Las funciones conectables en temas generalmente son extendidas por desarrolladores de temas secundarios. Pero los desarrolladores de complementos también pueden extender las funciones conectables dentro de sus complementos. Supongamos que ha anulado la función conectable tanto en el tema secundario como en el complemento. En tales casos, las funciones de los complementos tendrán prioridad sobre las funciones de temas secundarios..

Así que asegúrese de convertir sus funciones de tema existentes en funciones conectables cuando sea necesario para permitir la máxima capacidad de extensión.


Resumen

El concepto de funciones conectables de WordPress le permite ampliar la funcionalidad de sus temas y complementos. En general, es preferible anular las funciones conectables del núcleo de WordPress en los complementos y sus propias funciones conectables en los temas. Asegúrese de obtener una comprensión adecuada de la secuencia de ejecución de la acción de WordPress antes de crear funciones conectables para evitar conflictos.