web-dev-qa-db-fra.com

function_exists appelle dans function.php

Dans le fichier function.php de la vingteleven, la fonction de configuration vérifie si elle existe avant de l'exécuter:

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

add_action( 'after_setup_theme', 'twentyeleven_setup' );

Cependant, sur vingt-douze, il n’est pas configuré comme ceci (il ne vérifie pas si la fonction existe). Ma question est la suivante: à quoi sert ce modèle? Function_exists vérifie-t-il simplement si la fonction a été définie (quelle est-elle sur la ligne suivante?) Ou fait-elle autre chose? Pourquoi le nouveau thème ne l'inclut-il pas?

4
William

Cette fonction twentyeleven_setup, et d’autres similaires, sont enfichables - ce qui signifie qu’elles peuvent être remplacées par un thème de l'enfant. La version du thème enfant d'une fonction portant le même nom sera analysée en premier, de sorte que la version du thème parent ne sera pas exécutée du tout.

Dans TwentyTwelve, certaines fonctions ne sont pas connectables, mais sont plutôt rattachées à des crochets. En associant des fonctions alternatives aux mêmes points d'ancrage d'un thème enfant, vous pouvez remplacer la logique interne de la fonction de thème parent, sans reconstruire l'ensemble de la fonction.

6
vancoder