function_exists chama em function.php

4

No arquivo function.php do vigésimo quarto, a função de configuração verifica se ele existe antes de executá-lo:

if (!function_exists('twentyelevent_setup')):
function twentyelevent_setup() {
... Setup code ...
}

add_action( 'after_setup_theme', 'twentyeleven_setup' );

No entanto, em vinte e doze, não é configurado assim (não verifica se a função existe). Minha pergunta é: qual é o objetivo desse padrão de design? A function_exists apenas verifica se a função foi definida (o que está na próxima linha?) Ou faz outra coisa? Por que o novo tema não o inclui?

    
por William 08.04.2013 / 19:24

1 resposta

6

Essa função twentyeleven_setup e outras semelhantes são plugáveis - o que significa que podem ser substituído por um tema infantil. A versão do tema filho de uma função com o mesmo nome será analisada primeiro, portanto, a versão do tema pai não será executada.

Em TwentyTwelve, algumas funções não são conectáveis, mas são conectadas a ganchos. Ao anexar funções alternativas aos mesmos ganchos em um tema filho, você pode substituir a lógica interna da função do tema pai, sem recriar toda a função.

    
por vancoder 08.04.2013 / 19:33