WordPress developers and site owners have at least three ways to add custom PHP: edit functions.php directly, use Code Snippets plugin, or use Insert PHP Code Snippet. Each has specific strengths that align with specific use cases. Using the wrong tool creates unnecessary complexity or risk.
functions.php Direct Editing
The traditional approach. Your theme’s functions.php file runs on every page load before plugins, making it appropriate for code that needs to run very early or that is tightly coupled to your specific theme.
Use functions.php when:
- The code is specifically about your theme’s behavior (registering theme support, custom templates)
- You need code to run before plugins initialise
- You are using a child theme and want the code to be part of the theme itself
Risks: A syntax error breaks the entire site. Code disappears when switching to a different theme. No easy way to disable individual functions without commenting them out.
Insert PHP Code Snippet
Best for: adding small amounts of dynamic PHP output to post content via shortcodes, particularly for content editors who need to embed dynamic values in pages.
Use Insert PHP Code Snippet when:
- You need PHP output inside post or page content (not just in the head/footer)
- A content editor (not just a developer) will use the output via shortcode
- The use case is simple and you do not need a full-featured snippet manager
Code Snippets
Best for: general-purpose WordPress customisation that should survive theme changes, be individually toggleable, and be recoverable if something goes wrong.
Use Code Snippets when:
- Adding WordPress hooks and filters that are not theme-specific
- Managing multiple snippets that you need to enable/disable independently
- You need CSS and JS snippets alongside PHP
- You want import/export for deploying snippets across sites
| functions.php | Insert PHP Snippet | Code Snippets | |
|---|---|---|---|
| Shortcode output | Manual setup | Built-in | Pro only |
| Survives theme change | No | Yes | Yes |
| Safe mode recovery | No | No | Yes |
| CSS/JS snippets | No | No | Yes |
| Import/Export | Manual | No | Yes |
| Cost | Free | Free | Free |
Not sure which fits your workflow? Describe your setup and get a free recommendation.
The Pragmatic Answer
For most WordPress sites: use Code Snippets for everything that does not need to be in functions.php for a specific reason. The safe mode recovery URL alone justifies using it over functions.php direct editing. Insert PHP Code Snippet adds value only if you specifically need shortcode-based PHP output in content, which Code Snippets free does not provide.
Avoid maintaining code in multiple places simultaneously – pick one approach and be consistent. Mixing functions.php edits, Code Snippets, and Insert PHP Code Snippet on the same site creates a maintenance headache as the codebase grows.