Funciones extensibles (By-Pass)
El by-passing es una práctica que permite crear una vía alternativa para la ejecución del proceso interno de una función. A diferencia de las funciones extensibles, en este caso no se reemplaza una función por otra, sino que se ingresa a la función original, se ejecuta un proceso diferente, y se detiene la ejecución del resto del código. En WordPress podemos lograrlo utilizando filtros.
<?php
// Función original:
function my_original_function() {
if ( apply_filters( 'my_original_function_hook', false ) ) {
return; // Se detiene la ejecución de la función en caso de que el filtro resuelva "true".
}
echo 'Hola mundo!';
}
// Función de by-pass:
function my_by_pass_function() {
echo 'Chau mundo!';
return true; // Devolvemos "true". Esto es importante para que la ejecución de la función original se detenga.
}
// Seteamos el filtro de by pass:
add_filter( 'my_original_function_hook', 'my_by_pass_function' );
// Llamamos a la función original:
my_original_function(); // Se imprime 'Chau mundo!'