How to Create a Custom Footer in Any WordPress Theme Using Hooks

Milos Lukic

Adding a custom footer to your WordPress site can be a bit challenging, especially if your theme doesn’t offer built-in options for customization or if you’re not using a page builder like Divi or Elementor. However, with a basic understanding of WordPress hooks, you can easily create and insert a custom footer into any WordPress theme.

In this guide, I’ll walk you through the process of adding a custom footer using WordPress hooks. We’ll also provide you with sample code to get you started.

What Are WordPress Hooks?

WordPress hooks are an essential part of the WordPress ecosystem, allowing developers to modify or add functionality to WordPress without altering the core files. Hooks are divided into two types:

  1. Action Hooks: Allow you to add or modify specific functionality.
  2. Filter Hooks: Allow you to modify data before it is used or displayed.

For adding a custom footer, we’ll be using an action hook.

Step 1: Understanding the wp_footer Hook

The wp_footer hook is one of the most common hooks used to add content just before the closing </body> tag in your theme’s footer. This hook is ideal for inserting custom content into your footer because it ensures that your code is placed in the correct location within the page structure.

Step 2: Writing the Function to Display Custom Footer Content

First, we need to create a custom function that will generate the content for our footer. Below is a sample function:

function custom_footer_content() {
    echo '<section>';
    echo '<div class="custom-footer">';
    echo '<p>© ' . date('Y') . ' Your Website Name. All rights reserved.</p>';
    echo '<nav class="footer-nav">';
    echo '<ul>';
    echo '<li><a href="' . esc_url(home_url('/about')) . '">About</a></li>';
    echo '<li><a href="' . esc_url(home_url('/contact')) . '">Contact</a></li>';
    echo '<li><a href="' . esc_url(home_url('/privacy-policy')) . '">Privacy Policy</a></li>';
    echo '</ul>';
    echo '</nav>';
    echo '</div>';
    echo '</section>';
}

This function creates a custom footer section that includes:

  • A copyright notice with the current year.
  • A navigation menu with links to the About, Contact, and Privacy Policy pages.

Step 3: Hooking the Function to wp_footer

Next, we need to hook this function to the wp_footer action so that it is executed at the appropriate time:

add_action('wp_footer', 'custom_footer_content');

This line tells WordPress to run the custom_footer_content function at the point where the wp_footer action is triggered.

Step 4: Adding the Code to Your Theme

To add this custom footer to your WordPress site, you’ll need to place the code in your theme’s functions.php file. Here’s the complete code snippet:

function custom_footer_content() {
    echo '<section>';
    echo '<div class="custom-footer">';
    echo '<p>© ' . date('Y') . ' Your Website Name. All rights reserved.</p>';
    echo '<nav class="footer-nav">';
    echo '<ul>';
    echo '<li><a href="' . esc_url(home_url('/about')) . '">About</a></li>';
    echo '<li><a href="' . esc_url(home_url('/contact')) . '">Contact</a></li>';
    echo '<li><a href="' . esc_url(home_url('/privacy-policy')) . '">Privacy Policy</a></li>';
    echo '</ul>';
    echo '</nav>';
    echo '</div>';
    echo '</section>';
}
add_action('wp_footer', 'custom_footer_content');

Simply copy and paste this code into the functions.php file of your active theme.

Step 5: Customizing the Footer Content

The sample code provided is a basic example. You can customize it further to suit your website’s design and needs. For instance, you could:

  • Add more links or social media icons.
  • Include additional styling classes for better control over the appearance.
  • Modify the HTML structure to align with your site’s design.

Important Considerations

  • Child Theme: It’s a best practice to add this code to a child theme’s functions.php file. This ensures that your customizations aren’t lost when the theme is updated.
  • CSS Styling: You may need to add custom CSS to style the footer content according to your site’s design.

Conclusion

By using the wp_footer hook, you can easily create a custom footer for any WordPress theme. This method is especially useful when your theme doesn’t offer footer customization options, or if you prefer not to use a page builder. With just a few lines of code, you can ensure that your footer aligns perfectly with your site’s branding and provides visitors with important navigation links.

Now that you know how to create a custom footer using WordPress hooks, you can start adding your own unique touch to your website!