Head & Footer Code


Head & Footer Code plugin helps you add custom code snippets (JavaScript, CSS, or HTML) to the page even if you are not a programmer. It could be within the <head> (site verification code for various services, custom styles, meta or Webfont link), right after opening <body> (pixel tracking, analytics or heatmap code) or just before closing </body> tag.

Go to ToolsHead & Footer Code in WordPress Dashboard. Insert custom code to HEAD, BODY or FOOTER section (depending on what you have to do).

If your WordPress shows the latest blog posts on the homepage, you can also add specific code only for the homepage on ToolsHead & Footer Code (there will be section Head, body and footer code on Homepage in Blog Posts mode)

To insert custom code specific for individual article (post, page or custom post type), use article-specific Metabox while editing post/page/custom post type (check out Screenshots). There choose if that specific code appends to site-wide code defined on ToolsHead & Footer Code, or to replace it.

Since version 1.2.5 you can also define Category specific code on each individual category.
Other taxonomies (tag and custom taxonomy) do not have their specific code. Global code uses instead for them.

This magic is done by hooking to WordPress hooks wp_head, wp_footer and wp_body_open.

Various code snippets are supported, including but not limited to:

  • Google Analytics
  • Google Tag Manager
  • Google Ads Conversion
  • Lite Analytics
  • Facebook Pixel
  • Hotjar
  • FullStory
  • Google site verification
  • Bing site verification
  • Yandex site verification
  • Alexa site verification

Works or broken?

If Head & Footer Code does not work on your WordPress project, please let us know by raising a new support ticket in the Community Forum and describe what does not works and how to reproduce the issue. We will make sure to resolve the issue as soon as possible.

If you find Head & Footer Code useful for your project, please review plugin.


  • Set site-wide custom content for head page section (before the </head>)
  • Set site-wide custom content for body section (after the <body>) – Requires WordPress 5.2!
  • Set site-wide custom content for footer page section (before the </body>)
  • [NEW in 1.2] Set homepage specific custom code for head, body and/or footer if Homepage mode is se to Blog Posts
  • [NEW in 1.3.1] Toggle homepage specific custom code on paged Homepage in Blog Posts mode (page 2, 3, a nd so on)
  • Set article specific custom code for head page section (before the </head>)
  • Set article specific custom code for body section (after the <body>) – Requires WordPress 5.2!
  • Set article specific custom content for footer page section (before the </body>)
  • [NEW in 1.3.0] Set category specific custom code for head, body and/or footer of the page
  • Choose priority of printed custom code to head/body/footer sections (lower number mean far from </head> and </body> and closer to <body>, higher number means closer to </head> and </body> and farther to <body>)
  • Choose which post types will have enabled article specific head/body/footer fields
  • Choose should article specific head/body/footer code be appended to site-wide code, or will replace site-wide code
  • [NEW in 1.2.1] View on Posts/Pages/Custom Post Types listing if article has defined any article specific custom code
  • Site-wide section located under Tools > Head & Footer Code
  • If you have set WP_DEBUG constant in wp-config.php to true, you’ll see site-wide and article specific entries in page source code wrapped to comments.
  • Multisite is supported.
  • PHP 8.2 ready!

General settings (HEAD, BODY, FOOTER global code and priority, Homepage code and behaviour) saves in WordPress option auhfc_settings.
Each post/page/custom post type specific HEAD, BODY and FOOTER code and behaviour saves to post meta _auhfc.
Each category specific HEAD, BODY and FOOTER code and behaviour saves to taxonomy meta _auhfc.
This data deletes from the database on uninstall.


  • Head & Footer Code box in Plugin search results
  • Plugin Settings page (Site-wide, Homepage and Article Post Types)
  • Article specific metabox
  • Example of custom code inserted to HEAD section (site-wide with appended article specific)
  • Example of custom code inserted to BODY and FOOTER sections (site-wide with appended article specific)
  • Category specific metabox
  • Example of custom code inserted to HEAD section (site-wide with appended category specific)
  • Example of custom code inserted to BODY and FOOTER section (site-wide with appended category specific)
  • Example of Head & Footer Code column on Pages listing, to identify which pages have set custom code, which one and what mode is selected


Installation of the Head & Footer Code is easy as any other WordPress plugin.

Standard procedure

  1. In WordPress Dashboard go to PluginsAdd New.
  2. Enter head footer code to the Search plugins… field and wait for the moment.
  3. Locate Head & Footer Code and click the Install Now button.
  4. After successful installation, click the Activate button.
  5. Click Settings link for Head & Footer Code or visit the ToolsHead & Footer Code.
  6. Add the desired code to the target section.

FTP procedure

  1. Click on the Download button to get Head & Footer Code installation package.
  2. Unpack archive head-footer-code.zip on local computer.
  3. Upload the entire directory head-footer-code to the /wp-content/plugins/ directory on your server.
  4. In WordPress Dashboard go to PluginsInstalled Plugins and click the link Activate for the Head & Footer Code plugin.
  5. Click Settings link for Head & Footer Code or visit the ToolsHead & Footer Code.
  6. Add the desired code to the target section.


Is supported PHP code in code snippets?

As it’s a security risk, the Head & Footer Code does not process PHP code if entered into any plugin field (global or article specific).

Any content added to HFC fields is printed on the front-end as is.

I entered code to BODY section, but nothing outputs on front-end

This feature is implemented since WordPress version 5.2 and requires theme compatibility.

To make sure if theme you use supports wp_body_open hook, open in code editor header.php file from theme you use, and check if right after opening <BODY> tag there is following code (if it does not exists, add it or ask some developer to do that for you):


if ( function_exists( ‘wp_body_open’ ) ) {


Marso 19, 2023 1 reply
This plugin really saves you time and hassle if you need to add some code to your theme. And even better - you can change themes and the codes will stay. There was a small issue with output logic, but Aleksandar was really helpful and updated the plugin swiftly, which meant that I don't have to waste my time on finding alternative plugin for my websites and transferring codes - so this deserves a 5*
Pebrero 19, 2023 1 reply
It's the best plugin to come along. It allows me to display a site-wide Creative Common license and still drop-in other licenses and copyright for guest posts, pages and published works not part of my site-wide license.
Agosto 3, 2022
Thanks for such a great plugin that just works.
Read all 42 reviews

Contributors & Developers

“Head & Footer Code” is open source software. The following people have contributed to this plugin.


“Head & Footer Code” has been translated into 6 locales. Thank you to the translators for their contributions.

Translate “Head & Footer Code” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


1.3.1 (2023-03-18)

  • Tested: on PHP 8.1.14/8.2.1 and WordPress 6.2-RC2 with Twenty Twenty-Three theme (Single and Multisite)
  • Add: support do not add homepage in Blog Post related code on paged pages (2, 3, and so on)
  • Add: CodeEditor on textareas in article Meta boxes
  • Fix: Fatal error due to relocated plugin update file
  • Cleanup: Remove donate button from settings page
  • Improve: Security.
  • Improve: Coding Standard.

1.3.0 (2022-05-08)

  • Tested: on PHP 8.1.5 and WordPress 6.0-RC1 with Twenty Twenty-Two theme (Single and Multisite)
  • Add: Support for Categotry specific code.
  • Improve: Coding Standard.
  • Improve: Important notes on settings page.
  • Improve: README converted to MarkDown.
  • Improve: Remove PayPal logo and load minified admin stylesheet.

1.2.4 (2021-10-15)

  • Tested: on WordPress 5.8.1 and PHP 8.0.9 and 8.0.11
  • Improve: clarify within article metabox on how replace behaviour for article-specific code works
  • (2021-08-23) Improve: along to FOOTER, enable processing of shortcodes in HEAD and BODY (you has to enable this opetion per location)

1.2.3 (2021-07-19)

  • Tested: on WordPress 5.8-RC4 and PHP 8.0.8
  • (2021-05-04) Fix: Notice errors Trying to get property ‘post_type’ of non-object in inc/front.php (thanks to @tekgirlymama)
  • Improve: DRY for getting post type.

1.2.2 (2021-04-24)

  • Tested: on WordPress 5.7.1
  • (2021-02-01) Fix: Noice errors in update script (thanks to @swinggraphics)
  • Improve: wording on post/page listing


  • Add: Head & Footer Code column to post/page/custom post type listing to show if/what article specific custom code is defined
  • Fix: in_array() expects parameter 2 to be array, null given in head-footer-code/inc/front.php on line 46, 111, and 176


  • Add: custom head, body and footer code for Homepage in Blog Posts mode.
  • Fix: Code Editor broken in WordPress 5.5 release.
  • Fix: Invalid requests while saving settings https://github.com/urosevic/head-footer-code/issues/1
  • Improve: DRY for front-end conditions.
  • Improve: translators tips for complex strings.
  • Improve: all strings available to localize.


  • Tested: on WordPress 5.4.1, 5.5-RC2-48768 with PHP 7.4.1
  • Add: Video tutorial on how to install, configure and use Head & Footer Code plugin


  • Tested: on WordPress 5.1.4, 5.3.2 and 5.4-beta3 with PHP 7.2.15 and 7.3.7
  • Fix: Backslashes are removed on post/page update in article specific HEAD/BODY/FOOTER code reported by @asherber (update_post_meta pass key and value to update_metadata which expect them slashed key and value)
  • Add: Support for wp_body_open Body hook introduced in WordPress 5.2
  • Add: Backward compatibility for wp_body_open for older WordPress installations
  • Add: FAQ Instructions on how to implement support for wp_body_open to any theme
  • Update: Links and wording on plugin settings page
  • Update: Screenshots

  • Fix: Fatal Error on Multisite WP’s (thanks @kunzemarketing for reporting)
  • Improve: DRI for front-end debugging


  • Add: Descriptive post types and descriptions for article specific sections
  • Add: Option to process shortcodes in FOOTER section (global setting for site-wide and article specific)
  • Change: Separate priority for HEAD and FOOT so admin can choose different priorities for header and footer
  • Add: CodeMirror code editor for HEAD and FOOTER code in plugin settings
  • Add: Plugin activation hook to prevent fatal errors in case of legacy WP and/or PHP
  • Improve: Loading security


  • Test compatibility with WordPress 5.1.1 and PHP 7.2.15
  • Change: Meta boxes layout and type of behavior selector
  • Change: Convert Post metaboxes to OOP
  • Change: GNU GPL license to v3
  • Add: Bundle GNU GPLv3 license to plugin codebase
  • Update: Screenshots


  • Compatibility check: Tested for WordPress 4.7.1
  • UX: Add right hand sidebar on global settings page with links to donate, FAQ, Community support and plugin Reviews page.
  • UX: Set monospaced font for textareas on global settings and article pages


  • Fix: PHP Notice: Trying to get property of non-object in \wp-content\plugins\head-footer-code\inc\front.php on line 41.
  • Fix: Overwrite footer content for post/page if post/page template after content have another WP Loop query (like recent posts WP Widget in RHS sidebar).
  • Optimize: Avoid reading post meta if not singular or post type not enabled
  • Tested in Multisite environment (main and other network websites) on WordPress v4.5-alpha-36504 and theme Twenty Sixteen v1.2-alpha.


  • Enhance: Add uninstall routine to make some housekeeping on plugin removal.
  • Enhance: Add post type in debug comments.
  • Readme: Test on WordPress v4.4-beta1 and updated compatibility.


  • Fix: PHP Warning: in_array() expects parameter 2 to be array, string given (introduced in v1.0.3)


  • Change: Make even default WP post types post and page optional for page specific head/footer code


  • Change: Replace PayPal donation links to prevent account limitations if plugin is used on website that violates PayPal’s Acceptable Use Policy


  • Fix: PHP Notice Trying to get property of non-object
  • Optimize: Remove attachment post type from available to select as no reason to have custom head/footer code on attachments
  • Optimize: Settings code cleanup


  • Initial release.