I'm trying to redeclare a function in a wordpress child theme that is already in use by the parent theme. However, I get a "Fatal error: Cannot redeclare" message when trying to do so.

Also, I've tried using the following with no luck:

if (!function_exists('jr_load_scripts')) {
  // do fancy things here...

Here's the link if you want to have a quick look...

EDIT: Here's the full code:

if (!function_exists('jr_load_scripts')) {
function jr_load_scripts() {
global $app_abbr;

$http = (is_ssl()) ? 'https' : 'http';

// load google cdn hosted scripts if enabled
if (get_option($app_abbr.'_google_jquery') == 'yes') :

    wp_register_script('jquery', (''.$http.'://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'), false, '1.4.2');
    wp_register_script('jquery-ui-custom', ''.$http.'://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js', false, '1.8');

else :

    wp_register_script('jquery-ui-custom', get_bloginfo('template_directory').'/includes/js/jquery-ui-1.8.custom.min.js', false, '1.8');



wp_enqueue_script('jquery-tag', get_bloginfo('template_directory').'/includes/js/jquery.tag.js', array('jquery'), '');
wp_enqueue_script('smoothscroll', get_bloginfo('template_directory').'/includes/js/smoothscroll.js', array('jquery'), '');
wp_enqueue_script('lazyload', get_bloginfo('template_directory').'/includes/js/jquery.lazyload.mini.js', array('jquery'), '1.5.0');
wp_enqueue_script('elastic', get_bloginfo('template_directory').'/includes/js/jquery.elastic.js', array('jquery'), '1.0');
wp_enqueue_script('fancybox', get_bloginfo('template_directory').'/includes/js/jquery.fancybox-1.3.4.pack.js', array('jquery'), '1.3.4');
wp_enqueue_script('qtip', get_bloginfo('template_directory').'/includes/js/jquery.qtip.min.js', array('jquery'), '1.0.0-rc3');
wp_enqueue_script('general', get_bloginfo('template_directory').'/includes/js/theme-scripts.js', array('jquery'), '3.0');

$jr_enable_indeed_feeds = get_option('jr_enable_indeed_feeds');
if ($jr_enable_indeed_feeds=='yes') :

     wp_enqueue_script('indeed-api', ''.$http.'://www.indeed.com/ads/apiresults.js');

  • Is this code from child theme or parent theme?
    – Rarst
    Jul 20, 2011 at 17:25

1 Answer 1


It is somewhat counter-intuitive but WordPress loads child's theme code before parent's theme. So wrapping anything in function_exists() in child theme does nothing, it's parent theme that needs to have that.

Better option is to unhook parent's theme function (unless it's run right at load, which it should not do) and hook your own.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.