WordPress.org

Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Functions File Explained

One way to change the default behaviors of WordPress is using a file named functions.php. It goes in your Theme's folder.

The functions file behaves like a WordPress Plugin, adding features and functionality to a WordPress site through PHP code. You can use it to call native PHP functions, WordPress functions, or to define your own functions.

Alternatively, you can place your custom PHP code into your own WordPress Plugin, or simply use a "functionality" plugin such as the Code Snippets plugin to manage your custom PHP snippets.

There are differences between using a plugin and a functions.php file.

A WordPress Plugin:

  • Executes only when individually activated via the Plugins panel.
  • Applies to all themes.
  • Requires specific unique Header text.
  • Is stored in wp-content/plugins, usually in a subdirectory.

A functions file:

  • Executes only when in the currently activated theme's directory.
  • Applies only to that theme. If the Theme is changed, the functionality is unused.
  • Requires no unique Header text.
  • Is stored with each Theme in the Theme's subdirectory in wp-content/themes.

Each theme has its own functions file, but only the functions.php in the active Theme affects how your site publicly displays. If your theme already has a functions file, you can add code to it. If not, you can create a plain-text file named functions.php to add to your theme's directory.

A Child Theme can have its own functions.php. This child functions file can be used to augment or replace the parent theme's functions.

With a functions file you can:

Beware: if a WordPress Plugin calls the same function, or filter, as you do in your functions file, the results can be unexpected -- even site-disabling.

Search the web for "WordPress functions.php" to find suggestions to enhance the functionality of your WordPress site.

Resources