WordPress is a publishing platform that makes it easy for anyone to publish online, and proudly powers millions of websites. It comes in two flavors: the fully hosted WordPress.com, and the self-hosted version available at WordPress.org. You can read more about the general differences between the two.
There are a few key differences to keep in mind when developing a theme or plugin for a WordPress.com site compared to how you might do it for self-hosted/WordPress.org sites. We’ve outlined a non-exhaustive list below.
WordPress.com provides full page caching, along with persistent object caching, out of the box. Anonymous page views are retrieved from memory for high performance and high scalability, and many db queries and other code-level objects are stored in-memory for fast retrieval. For more information, see our caching documentation.
WordPress.com has a custom comment form that allows visitors to leave comments as guests or using their WordPress.com, Facebook, or Twitter accounts. This comment form is also available for self-hosted sites via Jetpack.
Core WordPress.com features #
While WordPress.com is running on trunk WordPress, we’ve added a lot of bells and whistles in the form of features for every WordPress.com user and site owner. For more information about WordPress.com core features, take a read through the WordPress.com features category in the VIP Lobby and the WordPress.com features on the main WordPress.com Support site.
Custom Database Tables #
Custom database tables are not supported on WordPress.com. You should try to work within the WordPress API and use existing storage mechanisms like Custom Post Types, Taxonomies, Post Meta/Custom Fields, and so on.
Custom Fields Meta Box #
For security reasons, the “Custom Fields” meta box is disabled on WordPress.com. If your theme makes use of post meta, you should add custom meta boxes to allow users to enter data. The bonus is that this makes for a better user experience.
PHP File Whitelist #
WordPress.com has a PHP file whitelist, which restricts direct access to PHP files that are not core WordPress files. This means that PHP files in your theme cannot be accessed directly, which goes against best practices anyway.
Plugins on WordPress.com VIP are organized differently than a standard self-hosted/WordPress.org site, since on VIP your access is specific to your site’s theme folder. To use plugins on a WordPress.com VIP site, you add them to a “plugins” directory within your theme directory, and require_once/include_once them in
Registering Users #
By default, users registered through VIP-hosted websites are created as WordPress.com users, which means that the millions of users logged in to WordPress.com will also be logged in on your domain, making it easier for them to comment on your site. If you’d like to be able to register your own user profiles or create custom registration fields you’ll need to use a 3rd-party registration service, such as our partners at Janrain.
Server-side Cookie Handling #
Because of full-page caching, cookies should not be accessed or manipulated server-side. Any cookie handling code should be done client-side.
For translations, WordPress.com uses the “default” textdomain and your theme should too.