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. You can use it to call functions, both PHP and built-in WordPress, and to define your own functions. You can produce the same results by adding code to a WordPress Plugin or through the WordPress Theme functions file.
There are differences between the two.
A WordPress Plugin:
- Requires specific, unique Header text.
- Is stored in wp-content/plugins, usually in a subdirectory.
- Executes only when individually activated, via the Plugins panel.
- Applies to all themes.
- Should have a single purpose, e.g., convert posts to Pages, offer search engine optimization features, or help with backups.
A functions file:
- Requires no unique Header text.
- Is stored with each Theme in the Theme's subdirectory in wp-content/themes.
- Executes only when in the currently activated theme's directory.
- Applies only to that theme. If the Theme is changed, the functionality is lost.
- Can have numerous blocks of code used for many different purposes.
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.
With a functions file you can:
- Use WordPress Hooks, that vast collection of WordPress actions and filters that can alter almost everything WordPress does. For example, with the excerpt_length filter you can change your Post Excerpt length (from default of 55 words).
- Enable WordPress features such as add_theme_support() to turn on Post Thumbnails, Post Formats, and Navigation Menus.
- Define functions you wish to re-use in multiple theme template files.
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.
- Functions File not dependent on Theme: Creating a custom functions plugin