Headers and footers are the top and bottom parts of your website. Customizing them helps you show your own logo, menu, or contact info on every page.
Custom headers and footers in Wordpress
<?php
// To add custom header
function my_custom_header() {
?>
<header>
<h1>My Website</h1>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
</ul>
</nav>
</header>
<?php
}
add_action('wp_body_open', 'my_custom_header');
// To add custom footer
function my_custom_footer() {
?>
<footer>
<p>© 2024 My Website</p>
</footer>
<?php
}
add_action('wp_footer', 'my_custom_footer');
?>Use wp_body_open action to add code right after the opening <body> tag (top of the page).
Use wp_footer action to add code before the closing </body> tag.
wp_body_open hook.<?php
function add_logo_to_header() {
?>
<div class="logo">
<img src="/images/logo.png" alt="Site Logo">
</div>
<?php
}
add_action('wp_body_open', 'add_logo_to_header');wp_footer hook.<?php
function add_social_links_footer() {
?>
<div class="social-links">
<a href="https://twitter.com">Twitter</a>
<a href="https://facebook.com">Facebook</a>
</div>
<?php
}
add_action('wp_footer', 'add_social_links_footer');This code adds a simple header with a site title and navigation links at the top. It also adds a footer with copyright text at the bottom. Both appear on every page.
<?php // Custom header with site title and menu function custom_header() { ?> <header style="background:#eee;padding:1rem;text-align:center;"> <h1>Welcome to My Site</h1> <nav> <a href="/">Home</a> | <a href="/blog">Blog</a> | <a href="/contact">Contact</a> </nav> </header> <?php } add_action('wp_body_open', 'custom_header'); // Custom footer with copyright function custom_footer() { ?> <footer style="background:#eee;padding:1rem;text-align:center;margin-top:2rem;"> <p>© 2024 My Site. All rights reserved.</p> </footer> <?php } add_action('wp_footer', 'custom_footer'); ?>
Always use semantic HTML tags like <header> and <footer> for better accessibility.
Test your header and footer on different screen sizes to ensure they look good everywhere.
Use WordPress hooks wp_body_open and wp_footer to insert your custom code safely.
Custom headers and footers let you control what shows at the top and bottom of your site.
Use WordPress hooks wp_body_open and wp_footer to add your custom HTML.
Keep your code simple and use semantic tags for better user experience and accessibility.
Practice
wp_head and wp_footer hooks in WordPress?Solution
Step 1: Understand the role of hooks
Hooks likewp_headandwp_footerallow adding extra code to header and footer areas.Step 2: Identify their use
They are used to insert custom HTML, CSS, or JavaScript in those sections without editing theme files directly.Final Answer:
To add custom content or scripts to the header and footer sections of a site -> Option BQuick Check:
wp_head and wp_footer add content to header/footer [OK]
- Thinking hooks create pages
- Confusing hooks with menu settings
- Assuming hooks delete themes
wp_footer hook in your theme's functions.php?Solution
Step 1: Identify correct hook and function
Thewp_footerhook is used withadd_actionto add code to the footer.Step 2: Check syntax correctness
add_action('wp_footer', function() { echo ''; }); usesadd_action('wp_footer', function() { ... });which is correct syntax to add inline script.Final Answer:
add_action('wp_footer', function() { echo '<script>alert("Hi")</script>'; }); -> Option AQuick Check:
Use add_action with wp_footer for footer scripts [OK]
- Using add_filter instead of add_action
- Using wp_head instead of wp_footer for footer scripts
- Using non-existent 'footer' hook
functions.php:add_action('wp_head', function() { echo '<meta name="custom" content="123">'; });What will this code do when the site loads?
Solution
Step 1: Understand wp_head hook behavior
Thewp_headhook inserts code inside the <head> tag of the HTML document.Step 2: Analyze the echo statement
The code outputs a meta tag with name 'custom' and content '123' which will be placed inside <head>.Final Answer:
Add a meta tag with name 'custom' and content '123' inside the <head> section -> Option DQuick Check:
wp_head adds code inside <head> [OK]
- Thinking it adds content to footer
- Expecting visible text on page
- Assuming code causes error
functions.php:add_action('wp_footer', function() { echo '<div>Footer Text</div>'; });But the footer text does not appear on your site. What is the most likely reason?
Solution
Step 1: Check theme support for wp_footer
Thewp_footer()function must be called in the theme's footer.php to output footer hook content.Step 2: Understand why content is missing
Ifwp_footer()is missing, the hook callback won't run and content won't show.Final Answer:
The theme does not callwp_footer()function in its footer.php file -> Option AQuick Check:
wp_footer() call needed to show footer hook content [OK]
- Confusing add_action with add_filter
- Adding footer code to wp_head hook
- Ignoring theme template structure
functions.php?Solution
Step 1: Use conditional check for homepage header
Useis_front_page()insidewp_headhook to add header message only on homepage.Step 2: Add footer message on all pages
Usewp_footerhook without condition to add footer copyright on every page.Final Answer:
Use add_action('wp_head', function() { if (is_front_page()) echo '<div>Welcome Home!</div>'; }); and add_action('wp_footer', function() { echo '<div>Ā© 2024 MySite</div>'; }); -> Option CQuick Check:
Use conditional in wp_head, unconditional in wp_footer [OK]
- Adding all messages unconditionally
- Using add_filter instead of add_action
- Putting footer message in wp_head hook
Ready to prove it?
Pass the test and this pattern moves unknown
