cp-09 cp_logo_c cp_organization_big cp_organization_big_alt cp_organization_medium cp_organization_medium_alt cp_organization_small cp_organization_small_alt

You can add custom themes provided:

  1. Your CampusPress plan includes the option to add custom themes (email contact@campuspress.com to confirm if included).  
  2. Your custom theme meets our custom theme guidelines.

Submitting Custom themes

We use Git for managing code. To add themes to your network, please head over to BitBucket and register. Then email contact@campuspress.com with your username and CampusPress network URL.

All theme additions and edits should submitted via BitBucket as pull requests with “campuspress”(contact@campuspress.com) user selected as reviewer.

Once submitted, our team will review the theme (and all subsequent edits) for security and reliability before pushing live.

Depending on the queue and complexity of the theme (or edit) this can take up to 24 hours (or more for complex themes). Please keep in mind this important review timeline when launching new sites or changes.

Also, include in the commit message your name and email address so we know who to notify once the commit is pushed live or who to contact with questions.

The Guidelines

During the review process, we’ll check to ensure that all themes adhere to the WordPress Theme Guidelines and WordPress Coding Standards.

You can utilize the CampusPress Theme Check plugin to test your theme and make sure it’s up to spec with the latest theme review standards and CampusPress standards before submitting it to our team for review.

In addition, the theme must not rely on 3rd party services, phone home, and must:

  • not automatically upgrade or modify theme files;
  • not change timeout of wp_remote_* calls;
  • not ever change wp_feed_cache_transient_lifetime (hook to the filter);
  • not use SHOW TABLES, instead use SHOW TABLES LIKE ‘wp_xyz’;
  • not use DESC to describe table, instead use DESCRIBE;
  • not change WP_DEBUG, error_reporting or display_errors;
  • not remove default roles (remove_role);
  • not flush rewrite rules ($wp_rewrite->flush_rules is not allowed);
  • not flush cache (wp_cache_flush is not allowed);
  • not contain SQL queries. Themes should use WordPress built in functions for fetching post, pages, attachments, users and respective meta tags;
  • not create new tables or modify table schema;
  • not use filesystem functions listed here;
  • not store files in the server file system. Themes must always make use of WordPress attachments if it accepts file uploads;

We reserve the right to modify list of checks above. If we discover performance or security issues after the theme has been approved and the theme complies to all of the checks we may ask you to fix the theme or fix the theme ourselves at our discretion.

We try to make checks as thorough as possible. However if we discover a theme does not follow our guidelines after approval we reserve the right to temporarily remove the theme until it complies to all the checks.

Try to keep your themes simple as possible and they will pass our review process without any issues.

Theme Updates

We require you to increase version parameter for files like css, js and images when updating your theme.
For CSS it’s best to use wp_enqueue_style function and for JS wp_enqueue_script. Both of them have $ver parameter useful for increasing version. For paths to files like images and fonts it’s best to change path from for example: “images/image.jpg” to “images/image.jpg?ver=2”. It’s worth noting that this also applies to paths in CSS files.

Advanced Custom Field

Advanced Custom Fields plugin is added as a default CampusPress plugin and isn’t listed in the plugin list because it’s a plugin that only needs to be used with specific themes.  We’ve used this approach because we found users often activated the plugin when it wasn’t needed for their theme.  

To use it you need to add the following once in the functions.php: 

include_once(CP_ACF_PATH);
if( class_exists(‘acf’) ) {
/*execute ACF related code here*/
}

There is also “CP_ACF_DIR_PATH” constant available for you to get path to ACF folder when needed.
You’ll find more detailed instructions from the plugin developer here.

Send an email to contact@campuspress.com if you need a copy of the Advanced Custom field plugin we’re using.

Please note:

  • Advanced Custom Fields plugin has been added as a custom plugin on a few CampusPress networks.
  • Any networks that have a custom version of Advanced Custom Fields plugin will see the plugin listed in Plugins > Plugin Management and need to activate the plugin on the site to use it with the theme.