FAQ Developer Documentation
- 1 How To Contribute to WordPress
- 2 Plugins and Themes
- 3 Other Developer Questions
- 3.2 How does the GPL affect my freedom in licensing my plugin or theme?
- 3.3 Where can I find information about the WordPress database?
- 3.4 Why does WordPress only support MySQL? What about DB abstraction?
- 3.5 Where can information on functions used in WordPress code be found?
This article lists common questions for WordPress core developers, as well as developers of WordPress plugins and themes, and refers you to articles that contain the answers. There is also a list of resources at Developer Documentation, which might be of help.
How To Contribute to WordPress
Where do I sign up?
Check out Contributing to WordPress to find out what you can do and how to get involved.
How do I submit a bug report?
See Reporting Bugs.
How does code make it into WordPress?
Are there standards for the code in WordPress?
Yes. WordPress Coding Standards has a list of coding standards used by WordPress core developers, plugin developers, and theme authors.
Can I help by translating WordPress?
Definitely! See WordPress in Your Language for information on existing translations, and Translating WordPress to find out how you can help if your language's translation is missing or needs improvement.
What is Subversion?
Subversion is the online program used to track changes and upgrades to WordPress for developers. See Using Subversion for more information. There is also an online browser for the WordPress Subversion repository.
Plugins and Themes
How do I report a bug in a plugin?
Problems with plugins are best reported to the plugin author (visit the plugin's home page to find out how to contact the author). For plugins that are included in the wp-plugins.org Plugin Repository, you can also report bugs in the wp-plugins.org TrackTickets site.
Is there a list of plugins?
Yes, there are several. Plugins has the most comprehensive list of plugin repositories.
How do I write a plugin?
Basic instructions on how to write a plugin for WordPress can be found in Writing a Plugin. The API of "Hooks" for plugins is described in Plugin API. There is also a comprehensive list of other plugin resources in Plugin Resources.
How do I create a theme?
Other Developer Questions
Yes. See WordPress Cookies.
How does the GPL affect my freedom in licensing my plugin or theme?
Most plugin and theme authors choose to license their plugins and themes under the GPL. Also, keep in mind that if your theme or plugin incorporates code from another theme or plugin that uses the GPL, you will probably need to license your theme or plugin with the GPL as well. If your theme or plugin is completely independent of other WordPress code, themes, and plugins, then you can probably license it however you would like.
Where can I find information about the WordPress database?
See Database Description.
Why does WordPress only support MySQL? What about DB abstraction?
While in theory supporting more databases is better than supporting one, in practice focusing on MySQL has a number of benefits.
First, introducing support for databases other than MySQL would increase the testing load for all development quite a bit, as already the combinations of PHP versions, web servers like Apache, Lighttpd, and IIS, and Windows vs Linux cause a number of issues, multiplying that by an arbitrary number of database platforms is daunting.
Early on in WordPress' history when DB abstraction was seriously considered we noticed packages like AdoDB were bigger than WordPress itself, which seemed like a lot of weight for little gain.
DB independence also requires far more than just dropping in a DB abstraction class, as basic assumptions WP makes about things like primary keys, indicies, auto incrementing fields, LIMITs, and more vary more from DB to DB than a class could support without serious code changes.
Finally, MySQL is ubiquitous and has shown to be fast enough and scalable enough for the highest traffic loads, so supporting other DBs would not improve the WordPress experience or our popularity much. As a feature request it comes up fairly infrequently.
All that said, every query in WordPress goes through a class called wpdb and that class can be replaced with your own by putting a db.php file in wp-content. So far this has been used for mysqli support and an advanced enterprise DB class called HyperDB, but in theory you could use that, and some wicked regular expressions, to add support for a MySQL-like database without any core code modifications.
Where can information on functions used in WordPress code be found?
Hooks are provided at http://wphooks.flatearth.org
A complete overview of all documented code can be found at PHPXref.com