Cómo anular una función conectable

4

¿Cómo puedo anular una función en pluggable.php?

He intentado crear mi propio complemento: tengo el error fatal en la función ya definida.

Probé functions.php en mi tema: obtuve la pantalla en blanco.

¿Es posible anular una función pluggable.php sin tocar el archivo de código fuente en sí?

Gracias.

Aquí está la función que deseo anular (ubicada en ../wp-includes/pluggable.php):

if ( !function_exists('wp_new_user_notification') ) :
/**
 * Notify the blog admin of a new user, normally via email.
 *
 * @since 2.0
 *
 * @param int $user_id User ID
 * @param string $plaintext_pass Optional. The user's plaintext password
 */
function wp_new_user_notification($user_id, $plaintext_pass = '') {
...
}
    
pregunta frank13 26.06.2012 - 15:50

2 respuestas

3

Envuélvalo en un cheque function_exists :

if( ! function_exists('some_pluggable_function') ) {
    function some_pluggable_function()
    }
}
    
respondido por el Milo 26.06.2012 - 16:47
3

La forma correcta de anular las funciones en pluggable.php es redefinir la misma función en un complemento. La función de su complemento anulará la de pluggable.php , ya que la WP one está envuelta en una llamada a function_exists() .

Pero asegúrate de que solo estás haciendo esto una vez . De el Códice :

  

Nota: Una función solo se puede reasignar de esta manera una vez, por lo que no puedes instalar dos complementos que conecten la misma función por diferentes motivos. Por seguridad, es mejor envolver siempre sus funciones con if ( !function_exists() ) , de lo contrario, producirá errores fatales en la activación del complemento.

Por lo que usted describe que sucede, parece que más de un complemento está intentando anular la misma función.

    
respondido por el EAMann 26.06.2012 - 17:11

Lea otras preguntas en las etiquetas