Documentation VIP Go Understanding the differences between VIP Go, WordPress.com VIP, and WordPress.org

Understanding the differences between VIP Go, WordPress.com VIP, and WordPress.org

Overview #

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 VIP Go site compared to how you might do it for WordPress.com VIP or self-hosted/WordPress.org sites. We’ve outlined a non-exhaustive list below.

↑ Top ↑

Caching #

Similar to WordPress.com, VIP Go provides full page caching, along with persistent object caching, out of the box.  Logged-out 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 VIP Go caching documentation.

↑ Top ↑

Core WordPress.com features #

While WordPress.com runs WordPress, it also includes other custom plugins and features for every WordPress.com user and site owner.  VIP Go is much closer to a self-hosted/WordPress.org site, with only a few required security and platform plugins pre-installed.

↑ Top ↑

Custom Database Tables #

Custom database tables are not supported on WordPress.com. We recommend against using custom tables, but they may be a possibility on VIP Go on a case-by-case basis if they can be shown not to affect performance.  All tables need to start with the $wpdb->prefix table prefix to make sure they are properly backed up by VaultPress.  Please contact us if you have any questions about custom database tables.

↑ Top ↑

Custom Fields Meta Box #

For security reasons, the “Custom Fields” meta box is disabled on WordPress.com, but is available on VIP Go.  We still recommend using custom meta boxes for data entry as it makes for a better user experience.

↑ Top ↑

PHP File Whitelist #

WordPress.com and VIP Go have 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.

↑ Top ↑

Plugins #

Plugins on VIP Go are organized the same way as self-hosted/WordPress.org sites, using the /wp-content/plugins/ folder (plugins folder in the Git repository).  This is different to how plugins are organized on WordPress.com VIP sites, which are located inside the theme folder.

↑ Top ↑

Registering Users #

Since WordPress.com is a large MultiSite instance, user registration can’t be done with a theme or plugin.  With VIP Go the site users are isolated to that specific site, which can even be a WordPress MultiSite, and can be managed with code.

↑ Top ↑

Because of full-page caching on both WordPress.com VIP and VIP Go, cookies should not be accessed or manipulated server-side. Any cookie handling code should be done client-side.

↑ Top ↑

Mapped domains #

On WordPress.com every website has a *.wordpress.com URL that is used for the admin pages and as a starting site, and other domains and subdomains can be mapped and set as primary.  VIP Go sites have a similar starting domain, *.go-vip.co, but once a domain is mapped to it and set as primary, the mapped domain will be used for both public pages and the admin pages.

↑ Top ↑

Fetching remote data #

On WordPress.com VIP and VIP Go, we provide special cached functions for fetching external data, and require that you use these, rather than the normal WordPress.org functions. Full details on how to use these functions are here.

↑ Top ↑

Storing user data #

VIP Go can use user_meta similar to self-hosted/WordPress.org sites, but WordPress.com sites need to use user_attributes.

↑ Top ↑

Multisite operations #

On VIP Go it’s possible to use Multisite, so some multisite operations are allowed.

switch_to_blog() is permitted, although can be a performance drain so should be used carefully, if needed. For example, try not to loop over all blogs and only ever call it from the admin.

Documentation is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.