Verificar se as funções do WordPress foram criadas antes de chamá-las é para compatibilidade com versões anteriores, o que não é necessário para a IMHO.
Então, se você ver if ( function_exists( 'register_nav_menus' ) )
, o autor do tema está suportando versões anteriores à 3.0.
Você ainda vê algumas vezes if ( function_exists( 'dynamic_sidebar' ) )
Por quê? Eu não poderia te dizer porque o dynamic_sidebar foi introduzido no 2.2.
Outro motivo para usá-lo é tornar seu tema ou plug-in pluggable. Uma função conectável é aquela que pode ser substituída em um tema filho ou outro plug-in.
Isso é feito na definição e não na chamada e você usa o! operador para ter certeza de que ele ainda não existe antes de defini-lo.
if ( ! function_exists( 'my_awesome_function' ) ) {
/**
* My Awesome function is awesome
*
* @param array $args
* @return array
*/
function my_awesome_function( $args ) {
//function stuff
return array();
}
}
Quando isso é feito, um tema filho ou outro plug-in pode substituir essa função por ela própria.