Title: cannot redeclare function
Last modified: August 22, 2017

---

# cannot redeclare function

 *  [harveyl12](https://wordpress.org/support/users/harveyl12/)
 * (@harveyl12)
 * [8 years, 9 months ago](https://wordpress.org/support/topic/cannot-redeclare-function/)
 * So I have a child theme and want to change add a function to my functions.pp 
   file that will over ride a function in another file of the parent theme but i
   get the below error.
 * Fatal error: Cannot redeclare hesta_bottom_footer_content() (previously declared
   in C:\xampp\htdocs\hcldesign\wp-content\themes\hestia-child\functions.php:36)
   in C:\xampp\htdocs\hcldesign\wp-content\themes\hestia\inc\template-tags.php on
   line 835
 * Any idea on how i can fix this?
 * Thanks,
 * Harvey

Viewing 4 replies - 1 through 4 (of 4 total)

 *  [Jacob Peattie](https://wordpress.org/support/users/jakept/)
 * (@jakept)
 * [8 years, 9 months ago](https://wordpress.org/support/topic/cannot-redeclare-function/#post-9430347)
 * Themes need to explicitly support this by making their function ‘pluggable’, 
   which means wrapping their function definitions in an `if ( function_exists())`
   statement.
 * If the function is only used in a hook (`add_action` or `apply_filters` etc.)
   then you can use `remove_action` to unhook it, and then add your own new function
   in its place.
 * If the function is used in a template, then as long as that template belongs 
   to the template hierarchy, or is included with `get_template_part()`, you would
   be able to replace that template file and use your own new function in place 
   of the parent theme’s.
 * If it’s not used in either of those ways, there’s not much you can really do 
   about it other than asking the theme developer for better child theme support.
 *  Thread Starter [harveyl12](https://wordpress.org/support/users/harveyl12/)
 * (@harveyl12)
 * [8 years, 9 months ago](https://wordpress.org/support/topic/cannot-redeclare-function/#post-9430660)
 * Hi,
 * So what would you suggest I can try here?
 * Add `get_template_part (inc)`?
 * The theme is hestia? I am able to change the parent file to do what I want but
   invisibly every update for the theme will change this back.
 * Any help will be appreciated
 * Thanks
 * Harvey
 *  [Jacob Peattie](https://wordpress.org/support/users/jakept/)
 * (@jakept)
 * [8 years, 9 months ago](https://wordpress.org/support/topic/cannot-redeclare-function/#post-9430743)
 * This is really a topic for the theme’s support forum, but I have the answer so
   will post it.
 * The function you want to replace is used inside the `hestia_the_footer_content()`
   function, which is hooked to `hestia_do_footer`.
 * So you’ll want to unhook `hestia_the_footer_content` from `hestia_do_footer` 
   and hook a new function.
 *     ```
       function childtheme_replace_footer_content() {
       	remove_action( 'hestia_do_footer', 'hestia_the_footer_content' );
       	add_action( 'hestia_do_footer', 'childtheme_the_footer_content' );
       }
       add_action( 'init', 'childtheme_unhook_parent' );
       ```
   
 *  Copy the `hestia_the_footer_content()` function to your child theme with a new
   name (in my example, it’s `childtheme_the_footer_content`) and replace the call
   to `hesta_bottom_footer_content()` inside it with a call to your new function
   that you want to replace it with.
    -  This reply was modified 8 years, 9 months ago by [Jacob Peattie](https://wordpress.org/support/users/jakept/).
 *  Thread Starter [harveyl12](https://wordpress.org/support/users/harveyl12/)
 * (@harveyl12)
 * [8 years, 9 months ago](https://wordpress.org/support/topic/cannot-redeclare-function/#post-9431410)
 * Hi,
 * Okay i’m not too familiar with PHP.
 * So this is the code I am wanting to put in the /hestia-child/functions.php which
   is originally in WP-Content/themes/hestia/inc/template-tags.php
 *     ```
       function hesta_bottom_footer_content( $is_callback = false ) {
       	if ( ! $is_callback ) {
       	?>
       		<div class="hestia-bottom-footer-content">
       		<?php
       	}
       	$hestia_general_credits     = get_theme_mod(
       		'hestia_general_credits',
       		sprintf(
       			/* translators: %1$s is Theme Name, %2$s is WordPress */
       			esc_html__( 'Designed by HCL Design' ),
       			sprintf(
       				/* translators: %s is Theme name */
       				'<a href="https://themeisle.com/themes/hestia/" target="_blank" rel="nofollow">%s</a>',
       				esc_html__( 'Hestia', 'hestia' )
       			),
       			/* translators: %s is WordPress */
       			sprintf(
       				'<a href="%1$s" rel="nofollow">%2$s</a>',
       				esc_url( __( 'http://wordpress.org', 'hestia' ) ),
       				esc_html__( 'WordPress', 'hestia' )
       			)
       		)
       	);
       	$hestia_copyright_alignment = get_theme_mod( 'hestia_copyright_alignment', 'right' );
       	$menu_class                 = 'pull-left';
       	$copyright_class            = 'pull-right';
       	switch ( $hestia_copyright_alignment ) {
       		case 'left':
       			$menu_class      = 'pull-right';
       			$copyright_class = 'pull-left';
       			break;
       		case 'center':
       			$menu_class      = 'hestia-center';
       			$copyright_class = 'hestia-center';
       	}
       	wp_nav_menu(
       		array(
       			'theme_location' => 'footer',
       			'depth'          => 1,
       			'container'      => 'ul',
       			'menu_class'     => 'footer-menu ' . esc_attr( $menu_class ),
       		)
       	);
       		?>
       	<?php if ( ! empty( $hestia_general_credits ) || is_customize_preview() ) : ?>
       		<div class="copyright <?php echo esc_attr( $copyright_class ); ?>">
       			<?php echo wp_kses_post( $hestia_general_credits ); ?>
       		</div>
       	<?php endif; ?>
       	<?php
       	if ( ! $is_callback ) {
       	?>
       		</div>
       		<?php
       	}
       }
       ```
   
 * So have you got any idea how i would code this in?
 * Is this unhook and hook to be added to the functions.php file?
    -  This reply was modified 8 years, 9 months ago by [harveyl12](https://wordpress.org/support/users/harveyl12/).

Viewing 4 replies - 1 through 4 (of 4 total)

The topic ‘cannot redeclare function’ is closed to new replies.

## Tags

 * [function](https://wordpress.org/support/topic-tag/function/)
 * [redeclare](https://wordpress.org/support/topic-tag/redeclare/)

 * In: [Fixing WordPress](https://wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 4 replies
 * 2 participants
 * Last reply from: [harveyl12](https://wordpress.org/support/users/harveyl12/)
 * Last activity: [8 years, 9 months ago](https://wordpress.org/support/topic/cannot-redeclare-function/#post-9431410)
 * Status: not resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
