WordPress plugins are outside code that alter the functionality of WordPress in virtually any way possible.
Some plugins are very simple, and others are very complicated; "plugin" simply describes where the code is located and how it is incorporated into WordPress.
All plugins revolve around a central PHP file. This file names and registers the plugin itself, through a comment block at the top; it also enqueues or otherwise includes the plugin's other resources.
Virtually all plugins use WordPress's system of hooks (action hooks and filter hooks) to determine which pieces of the WordPress PHP codebase they will affect, and in what ways.
The idea of "writing a plugin" can be daunting, if you think of plugins as big complex pieces of software that take thousands of hours to write and change WordPress in huge ways.
Many plugins, like WooCommerce or BuddyPress, do indeed fit that description—but that's not what "plugin" itself really means. We've wr...