Awesome
Ultimate WordPress Plugin Main File
How to leave legacy technologies behind
Source code in plugin-name.php
needs PHP 7 which is present on more than
90% of WordPress installations.
Support my work
Please consider sponsoring me monthly if you use my packages in an agency.
Parts of plugin main file
- Header comment
- PHP strict types
- PHP namespaces
- Prevent direct execution
- Load autoloader
- Prevent double activation
- Define constant values in an immutable container
- Load translations
- Check requirements
- PHP and WordPress minimum version
- Multisite installation
- Other plugins
- Current theme
- Composer packages
- Hook plugin activation functions
- Support WP-CLI
- Display admin notice and deactivate plugin on error
:bulb: Anything else goes into a separate file.
What to avoid
- :x: Global constants
- :x: Global functions
- :x: Classes without namespace
- :x: Loading PHP files with
require
- :x: Code with side-effects outside the main file
- :x: Immediate execution without
add_action
in the main file - :x: Conditional function or class definitions
Installation
- Get the plugin ZIP from ...
- Upload to Plugins / Add new / Upload
/wp-admin/plugin-install.php?tab=upload
Usage
- Adjust settings ...
- Or add a hook
add_filter('project/enable', '__return_true');
tofunctions.php