Como sobrescrever uma função conectável

4

Como posso substituir uma função em pluggable.php?

Eu tentei criar meu próprio plugin - recebi o erro fatal da função já definida.

Eu tentei o functions.php no meu tema - peguei a tela branca.

É possível sobrescrever uma função pluggable.php sem tocar no próprio arquivo de código-fonte?

Obrigado.

Aqui está a função que desejo substituir (localizada em ../ 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 = '') {
...
}
    
por frank13 26.06.2012 / 15:50

2 respostas

3

Envolva-o em uma verificação function_exists :

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

A maneira correta de sobrescrever funções em pluggable.php é redefinir a mesma função em um plugin. A função do seu plugin substituirá a de pluggable.php , já que o WP é empacotado em uma chamada para function_exists() .

Mas certifique-se de fazer isso uma vez . De o Codex :

  

Observação: uma função só pode ser reatribuída dessa maneira uma vez, então você não pode instalar dois plug-ins que conectam a mesma função por motivos diferentes. Por segurança, é melhor sempre envolver suas funções com if ( !function_exists() ) , caso contrário, você produzirá erros fatais na ativação do plugin.

Pelo que você descreve acontecendo, parece que mais de um plug-in está tentando substituir a mesma função.

    
por EAMann 26.06.2012 / 17:11

Tags