Title: Fehlermeldung  Cannot redeclare get_subcategory_terms()
Last modified: 30. März 2016

---

# Fehlermeldung Cannot redeclare get_subcategory_terms()

 *  Gelöst [marcsebastian](https://de.wordpress.org/support/users/marcsebastian/)
 * (@marcsebastian)
 * [vor 10 Jahren, 6 Monaten](https://de.wordpress.org/support/topic/fehlermeldung-cannot-redeclare-get_subcategory_terms/)
 * Ich habe gerade an der functions.php rumgespielt, da ich Kategorien in meinem
   Shop (WooCommerce) ausblenden wollte. Wenn ich jetzt auf Datei aktualisieren 
   klicke kommt diese Fehlermeldung: `Fatal error: Cannot redeclare get_subcategory_terms()(
   previously declared in /www/htdocs/w0137581/rosengarten2005.de/wordpress/wp-content/
   themes/retrotale/functions.php:414) in /www/htdocs/w0137581/rosengarten2005.de/
   wordpress/wp-content/themes/retrotale/functions.php on line 448` Meiner Meinung
   nach habe ich aber gar keine 448 Zeilen?
    Hier ist meine functions.php :
 *     ```
       <?php
       /**
        * RetroTale functions and definitions.
        * @package RetroTale
        * @since RetroTale 1.0.0
       */
   
       /**
        * RetroTale theme variables.
        *
       */
       $retrotale_themename = "RetroTale";	//Theme Name
       $retrotale_themever = "1.1.1";			//Theme version
       $retrotale_shortname = "retrotale";	//Shortname
       $retrotale_manualurl = get_template_directory_uri() . '/docs/documentation.html';	//Manual Url
       // Set path to RetroTale Framework and theme specific functions
       $retrotale_be_path = get_template_directory() . '/functions/be/';									//BackEnd Path
       $retrotale_fe_path = get_template_directory() . '/functions/fe/';									//FrontEnd Path
       $retrotale_be_pathimages = get_template_directory_uri() . '/functions/be/images';		//BackEnd Path
       $retrotale_fe_pathimages = get_template_directory_uri() . '';	//FrontEnd Path
       //Include Framework [BE]
       require_once ($retrotale_be_path . 'fw-options.php');	 	 // Framework Init
       // Include Theme specific functionality [FE]
       require_once ($retrotale_fe_path . 'headerdata.php');		 // Include css and js
       require_once ($retrotale_fe_path . 'library.php');	       // Include library, functions
   
       /**
        * RetroTale theme basic setup.
        *
       */
       function retrotale_setup() {
       	// Makes RetroTale available for translation.
       	load_theme_textdomain( 'retrotale', get_template_directory() . '/languages' );
         // This theme styles the visual editor to resemble the theme style.
         $retrotale_font_url = add_query_arg( 'family', 'Lobster', "//fonts.googleapis.com/css" );
         add_editor_style( array( 'editor-style.css', $retrotale_font_url ) );
       	// Adds RSS feed links to <head> for posts and comments.
       	add_theme_support( 'automatic-feed-links' );
       	// This theme supports custom background color and image.
       	$defaults = array(
       	'default-color' => '',
         'default-image' => get_template_directory_uri() . '/images/pattern.png',
       	'wp-head-callback' => '_custom_background_cb',
       	'admin-head-callback' => '',
       	'admin-preview-callback' => '' );
         add_theme_support( 'custom-background', $defaults );
       	// This theme supports post thumbnails.
       	add_theme_support( 'post-thumbnails' );
       	set_post_thumbnail_size( 1170, 9999 );
         // This theme supports a custom header image.
         $args = array(
       	'width' => 2000,
       	'height' => 400,
         'flex-width' => true,
         'flex-height' => true,
         'header-text' => false,
         'random-default' => true,);
         add_theme_support( 'custom-header', $args );
         // This theme supports Post formats.
         add_theme_support( 'post-formats', array( 'aside', 'audio', 'image', 'status', 'video' ) );
         // This theme supports the Title Tag feature.
         add_theme_support( 'title-tag' );
         // This theme supports the WooCommerce plugin.
         add_theme_support( 'woocommerce' );
         global $content_width;
         if ( ! isset( $content_width ) ) { $content_width = 734; }
       }
       add_action( 'after_setup_theme', 'retrotale_setup' );
   
       /**
        * Enqueues scripts and styles for front-end.
        *
       */
       function retrotale_scripts_styles() {
       	global $wp_styles, $wp_scripts, $retrotale_options_db;
       	// Adds JavaScript
       	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) )
       		wp_enqueue_script( 'comment-reply' );
           if ( $retrotale_options_db['retrotale_post_entry_format'] == 'Grid - Masonry' ) {
           if ( is_home() || is_archive() || is_search() ) {
           wp_enqueue_script( 'jquery-masonry' );
           if ( !is_rtl() ) {
           wp_enqueue_script( 'retrotale-masonry-settings', get_template_directory_uri() . '/js/masonry-settings.js', array(), '1.0', true ); } else {
           wp_enqueue_script( 'retrotale-masonry-settings-rtl', get_template_directory_uri() . '/js/masonry-settings-rtl.js', array(), '1.0', true ); }}}
           wp_enqueue_script( 'retrotale-placeholders', get_template_directory_uri() . '/js/placeholders.js', array( 'jquery' ), '2.0.8', true );
           if ( $retrotale_options_db['retrotale_display_scroll_top'] != 'Hide' ) {
           wp_enqueue_script( 'retrotale-scroll-to-top', get_template_directory_uri() . '/js/scroll-to-top.js', array( 'jquery' ), '1.0', true ); }
           if ( $retrotale_options_db['retrotale_fixed_menu'] != 'Disable' && !is_page_template('template-landing-page.php') ) {
           wp_enqueue_script( 'retrotale-menubox', get_template_directory_uri() . '/js/menubox.js', array(), '1.0', true ); }
           wp_enqueue_script( 'retrotale-selectnav', get_template_directory_uri() . '/js/selectnav.js', array(), '0.1', true );
           wp_enqueue_script( 'retrotale-responsive', get_template_directory_uri() . '/js/responsive.js', array(), '1.0', true );
           wp_enqueue_script( 'retrotale-html5-ie', get_template_directory_uri() . '/js/html5.min.js', array(), '3.7.2', false );
           $wp_scripts->add_data( 'retrotale-html5-ie', 'conditional', 'lt IE 9' );
       	// Adds CSS
           wp_enqueue_style( 'retrotale-elegantfont', get_template_directory_uri() . '/css/elegantfont.css' );
           wp_enqueue_style( 'retrotale-google-font-default', '//fonts.googleapis.com/css?family=Lobster&subset=latin,latin-ext' );
           if ( class_exists( 'woocommerce' ) ) { wp_enqueue_style( 'retrotale-woocommerce-custom', get_template_directory_uri() . '/css/woocommerce-custom.css' ); }
       }
       add_action( 'wp_enqueue_scripts', 'retrotale_scripts_styles' );
   
       /**
        * Backwards compatibility for older WordPress versions which do not support the Title Tag feature.
        *
       */
       if ( ! function_exists( '_wp_render_title_tag' ) ) {
       function retrotale_wp_title( $title, $sep ) {
       	if ( is_feed() )
       		return $title;
       	$title .= get_bloginfo( 'name' );
       	$site_description = get_bloginfo( 'description', 'display' );
       	if ( $site_description && ( is_home() || is_front_page() ) )
       		$title = "$title $sep $site_description";
       	return $title;
       }
       add_filter( 'wp_title', 'retrotale_wp_title', 10, 2 );
       }
   
       /**
        * Register our menu.
        *
        */
       function retrotale_register_my_menu() {
         register_nav_menu( 'main-navigation', __( 'Main Header Menu', 'retrotale' ) );
       }
       add_action( 'after_setup_theme', 'retrotale_register_my_menu' );
   
       /**
        * Register our sidebars and widgetized areas.
        *
       */
       function retrotale_widgets_init() {
         register_sidebar( array(
       		'name' => __( 'Right Sidebar', 'retrotale' ),
       		'id' => 'sidebar-1',
       		'description' => __( 'Right sidebar which appears on all posts and pages.', 'retrotale' ),
       		'before_widget' => '<div id="%1$s" class="sidebar-widget %2$s">',
       		'after_widget' => '</div>',
       		'before_title' => ' <p class="sidebar-headline">',
       		'after_title' => '</p>',
       	) );
         register_sidebar( array(
       		'name' => __( 'Footer left widget area', 'retrotale' ),
       		'id' => 'sidebar-2',
       		'description' => __( 'Left column with widgets in footer.', 'retrotale' ),
       		'before_widget' => '<div id="%1$s" class="footer-widget %2$s">',
       		'after_widget' => '</div>',
       		'before_title' => '<p class="footer-headline">',
       		'after_title' => '</p>',
       	) );
         register_sidebar( array(
       		'name' => __( 'Footer middle widget area', 'retrotale' ),
       		'id' => 'sidebar-3',
       		'description' => __( 'Middle column with widgets in footer.', 'retrotale' ),
       		'before_widget' => '<div id="%1$s" class="footer-widget %2$s">',
       		'after_widget' => '</div>',
       		'before_title' => '<p class="footer-headline">',
       		'after_title' => '</p>',
       	) );
         register_sidebar( array(
       		'name' => __( 'Footer right widget area', 'retrotale' ),
       		'id' => 'sidebar-4',
       		'description' => __( 'Right column with widgets in footer.', 'retrotale' ),
       		'before_widget' => '<div id="%1$s" class="footer-widget %2$s">',
       		'after_widget' => '</div>',
       		'before_title' => '<p class="footer-headline">',
       		'after_title' => '</p>',
       	) );
         register_sidebar( array(
       		'name' => __( 'Footer notices', 'retrotale' ),
       		'id' => 'sidebar-5',
       		'description' => __( 'The line for copyright and other notices below the footer widget areas. Insert here one Text widget. The "Title" field at this widget should stay empty.', 'retrotale' ),
       		'before_widget' => '<div class="footer-signature"><div class="footer-signature-content">',
       		'after_widget' => '</div></div>',
       		'before_title' => '',
       		'after_title' => '',
       	) );
       }
       add_action( 'widgets_init', 'retrotale_widgets_init' );
   
       /**
        * Post excerpt settings.
        *
       */
       function retrotale_custom_excerpt_length( $length ) {
       global $retrotale_options_db;
       if ($retrotale_options_db['retrotale_excerpt_length'] != '') {
       return $retrotale_options_db['retrotale_excerpt_length'];
       } else { return 40; }
       }
       add_filter( 'excerpt_length', 'retrotale_custom_excerpt_length', 20 );
       function retrotale_new_excerpt_more( $more ) {
       global $post;
       return '...<br /><a class="read-more-button" href="'. esc_url( get_permalink($post->ID) ) . '">' . __( 'Read more', 'retrotale' ) . '</a>';}
       add_filter( 'excerpt_more', 'retrotale_new_excerpt_more' );
   
       if ( ! function_exists( 'retrotale_content_nav' ) ) :
       /**
        * Displays navigation to next/previous pages when applicable.
        *
       */
       function retrotale_content_nav( $html_id ) {
       	global $wp_query;
       	$html_id = esc_attr( $html_id );
       	if ( $wp_query->max_num_pages > 1 ) : ?>
       		<div id="<?php echo $html_id; ?>" class="navigation" role="navigation">
           <div class="navigation-inner">
       			<h2 class="navigation-headline section-heading"><?php _e( 'Post navigation', 'retrotale' ); ?></h2>
             <div class="nav-wrapper">
       			 <p class="navigation-links">
       <?php $big = 999999999;
       echo paginate_links( array(
       	'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
       	'format' => '?paged=%#%',
       	'current' => max( 1, get_query_var('paged') ),
         'prev_text' => __( '&larr; Previous', 'retrotale' ),
       	'next_text' => __( 'Next &rarr;', 'retrotale' ),
       	'total' => $wp_query->max_num_pages,
       	'add_args' => false
       ) );
       ?>
               </p>
             </div>
       		</div>
           </div>
       	<?php endif;
       }
       endif;
   
       /**
        * Displays navigation to next/previous posts on single posts pages.
        *
       */
       function retrotale_prev_next($nav_id) { ?>
       <?php $retrotale_previous_post = get_adjacent_post( false, "", true );
       $retrotale_next_post = get_adjacent_post( false, "", false ); ?>
       <div id="<?php echo $nav_id; ?>" class="navigation" role="navigation">
       	<div class="nav-wrapper">
       <?php if ( !empty($retrotale_previous_post) ) { ?>
         <p class="nav-previous"><a href="<?php echo esc_url(get_permalink($retrotale_previous_post->ID)); ?>" title="<?php echo esc_attr($retrotale_previous_post->post_title); ?>"><?php _e( '&larr; Previous post', 'retrotale' ); ?></a></p>
       <?php } if ( !empty($retrotale_next_post) ) { ?>
       	<p class="nav-next"><a href="<?php echo esc_url(get_permalink($retrotale_next_post->ID)); ?>" title="<?php echo esc_attr($retrotale_next_post->post_title); ?>"><?php _e( 'Next post &rarr;', 'retrotale' ); ?></a></p>
       <?php } ?>
          </div>
       </div>
       <?php } 
   
       if ( ! function_exists( 'retrotale_comment' ) ) :
       /**
        * Template for comments and pingbacks.
        *
       */
       function retrotale_comment( $comment, $args, $depth ) {
       	$GLOBALS['comment'] = $comment;
       	switch ( $comment->comment_type ) :
       		case 'pingback' :
       		case 'trackback' :
       	?>
       	<li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
       		<p><?php _e( 'Pingback:', 'retrotale' ); ?> <?php comment_author_link(); ?> <?php edit_comment_link( __( '(Edit)', 'retrotale' ), '<span class="edit-link">', '</span>' ); ?></p>
       	<?php
       			break;
       		default :
       		global $post;
       	?>
       	<li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
       		<div id="comment-<?php comment_ID(); ?>" class="comment">
       			<div class="comment-meta comment-author vcard">
       				<?php
       					echo get_avatar( $comment, 44 );
       					printf( '<span><b class="fn">%1$s</b> %2$s</span>',
       						get_comment_author_link(),
       						( $comment->user_id === $post->post_author ) ? '<span>' . __( '(Post author)', 'retrotale' ) . '</span>' : ''
       					);
       					printf( '<time datetime="%2$s">%3$s</time>',
       						esc_url( get_comment_link( $comment->comment_ID ) ),
       						get_comment_time( 'c' ),
       						// translators: 1: date, 2: time
       						sprintf( __( '%1$s at %2$s', 'retrotale' ), get_comment_date(''), get_comment_time() )
       					);
       				?>
       			</div><!-- .comment-meta -->
   
       			<?php if ( '0' == $comment->comment_approved ) : ?>
       				<p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.', 'retrotale' ); ?></p>
       			<?php endif; ?>
   
       			<div class="comment-content comment">
       				<?php comment_text(); ?>
       			 <div class="reply">
       			   <?php comment_reply_link( array_merge( $args, array( 'reply_text' => __( 'Reply', 'retrotale' ), 'after' => ' <span>&darr;</span>', 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
       			</div><!-- .reply -->
       			   <?php edit_comment_link( __( 'Edit', 'retrotale' ), '<p class="edit-link">', '</p>' ); ?>
       			</div><!-- .comment-content -->
       		</div><!-- #comment-## -->
       	<?php
       		break;
       	endswitch;
       }
       endif;
   
       /**
        * Function for adding custom classes to the menu objects.
        *
       */
       add_filter( 'wp_nav_menu_objects', 'retrotale_filter_menu_class', 10, 2 );
       function retrotale_filter_menu_class( $objects, $args ) {
   
           $ids        = array();
           $parent_ids = array();
           $top_ids    = array();
           foreach ( $objects as $i => $object ) {
   
               if ( 0 == $object->menu_item_parent ) {
                   $top_ids[$i] = $object;
                   continue;
               }
   
               if ( ! in_array( $object->menu_item_parent, $ids ) ) {
                   $objects[$i]->classes[] = 'first-menu-item';
                   $ids[]          = $object->menu_item_parent;
               }
   
               if ( in_array( 'first-menu-item', $object->classes ) )
                   continue;
   
               $parent_ids[$i] = $object->menu_item_parent;
           }
   
           $sanitized_parent_ids = array_unique( array_reverse( $parent_ids, true ) );
   
           foreach ( $sanitized_parent_ids as $i => $id )
               $objects[$i]->classes[] = 'last-menu-item';
   
           return $objects;
       }
   
       /**
        * Function for rendering CSS3 features in IE.
        *
       */
       add_filter( 'wp_head' , 'retrotale_pie' );
       function retrotale_pie() { ?>
       <!--[if IE]>
       <style type="text/css" media="screen">
       #container-shadow, .menu-box-wrapper, .top-navigation-wrapper {
               behavior: url("<?php echo get_template_directory_uri() . '/css/pie/PIE.php'; ?>");
               zoom: 1;
       }
       </style>
       <![endif]-->
       <?php }
   
       /**
        * Include the TGM_Plugin_Activation class.
        *
       */
       if ( current_user_can ( 'install_plugins' ) ) {
       require_once get_template_directory() . '/class-tgm-plugin-activation.php';
       add_action( 'retrotale_register', 'retrotale_my_theme_register_required_plugins' );
   
       function retrotale_my_theme_register_required_plugins() {
   
       $plugins = array(
       		array(
       			'name'     => 'Breadcrumb NavXT',
       			'slug'     => 'breadcrumb-navxt',
       			'required' => false,
       		),
           array(
       			'name'     => 'The Events Calendar',
       			'slug'     => 'the-events-calendar',
       			'required' => false,
       		),
       ); 
   
       $config = array(
       		'domain'       => 'retrotale',
           'menu'         => 'install-my-theme-plugins',
       		'strings'    	 => array(
       		'page_title'             => __( 'Install Recommended Plugins', 'retrotale' ),
       		'menu_title'             => __( 'Install Plugins', 'retrotale' ),
       		'instructions_install'   => __( 'The %1$s plugin is required for this theme. Click on the big blue button below to install and activate %1$s.', 'retrotale' ),
       		'instructions_activate'  => __( 'The %1$s is installed but currently inactive. Please go to the <a href="%2$s">plugin administration page</a> page to activate it.', 'retrotale' ),
       		'button'                 => __( 'Install %s Now', 'retrotale' ),
       		'installing'             => __( 'Installing Plugin: %s', 'retrotale' ),
       		'oops'                   => __( 'Something went wrong with the plugin API.', 'retrotale' ), // */
       		'notice_can_install'     => __( 'This theme requires the %1$s plugin. <a href="%2$s"><strong>Click here to begin the installation process</strong></a>. You may be asked for FTP credentials based on your server setup.', 'retrotale' ),
       		'notice_cannot_install'  => __( 'Sorry, but you do not have the correct permissions to install the %s plugin. Contact the administrator of this site for help on getting the plugin installed.', 'retrotale' ),
       		'notice_can_activate'    => __( 'This theme requires the %1$s plugin. That plugin is currently inactive, so please go to the <a href="%2$s">plugin administration page</a> to activate it.', 'retrotale' ),
       		'notice_cannot_activate' => __( 'Sorry, but you do not have the correct permissions to activate the %s plugin. Contact the administrator of this site for help on getting the plugin activated.', 'retrotale' ),
       		'return'                 => __( 'Return to Recommended Plugins Installer', 'retrotale' ),
       ),
       );
       retrotale_tgmpa( $plugins, $config );
       }}
       }
       ?>
       ```
   
 * Ich bitte um schnelle Hilfe!
    Marc-Sebastian

Ansicht von 1 Antwort (von insgesamt 1)

 *  Moderator [Torsten Landsiedel](https://de.wordpress.org/support/users/zodiac1978/)
 * (@zodiac1978)
 * [vor 10 Jahren, 6 Monaten](https://de.wordpress.org/support/topic/fehlermeldung-cannot-redeclare-get_subcategory_terms/#post-12820)
 * Suche doch mal in allen Theme-Dateien nach „get_subcategory_terms“. Irgendwo 
   muss die Funktion ja zweimal definiert werden.
 * Gruß, Torsten

Ansicht von 1 Antwort (von insgesamt 1)

 Das Thema „Fehlermeldung Cannot redeclare get_subcategory_terms()“ ist für neue
Antworten geschlossen.

## Schlagwörter

 * [Error](https://de.wordpress.org/support/topic-tag/error/)
 * [Fatal](https://de.wordpress.org/support/topic-tag/fatal/)
 * [Fatal error](https://de.wordpress.org/support/topic-tag/fatal-error/)
 * [Fehler](https://de.wordpress.org/support/topic-tag/fehler/)
 * [woocommerce](https://de.wordpress.org/support/topic-tag/woocommerce/)

 * In: [Themes](https://de.wordpress.org/support/forum/themes/)
 * 1 Antwort
 * 2 Teilnehmer
 * Letzte Antwort von: [Torsten Landsiedel](https://de.wordpress.org/support/users/zodiac1978/)
 * Letzte Aktivität: [vor 10 Jahren, 6 Monaten](https://de.wordpress.org/support/topic/fehlermeldung-cannot-redeclare-get_subcategory_terms/#post-12820)
 * Status: gelöst

## Themen

### Beliebteste Themen

### Unbeantwortete Themen

### Nicht-Support-Themen

### Gelöste Themen

### Ungelöste Themen

### Alle Themen
