it-swarm.com.de

Wordpress Child Themes

Ich versuche, eine Funktion in einem untergeordneten WordPress-Design neu zu deklarieren, das bereits vom übergeordneten Design verwendet wird. Ich erhalte jedoch die Meldung "Schwerwiegender Fehler: Kann nicht erneut deklariert werden", wenn ich dies versuche.

Außerdem habe ich Folgendes ohne Glück versucht:

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

Hier ist der Link , wenn Sie einen kurzen Blick darauf werfen möchten ...

EDIT: Hier ist der vollständige 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_deregister_script('jquery');
    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');

endif;

wp_enqueue_script('jquery');
wp_enqueue_script('jquery-ui-custom');

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');

endif;
}
1
Riaan Knoetze

Es ist etwas kontraintuitiv, aber WordPress lädt den Theme-Code des Kindes vor dem Theme des Elternteils. Das Umschließen von function_exists() in ein untergeordnetes Thema bewirkt also nichts. Das muss für das übergeordnete Thema gelten.

Besser ist es, die Theme-Funktion des Elternteils zu deaktivieren (es sei denn, sie wird direkt beim Laden ausgeführt, was jedoch nicht der Fall sein sollte) und eine eigene zu erstellen.

0
Rarst