You can add custom themes and plugins provided:

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

Submitting Themes And Plugins

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.

Plugins should be submitted via email to contact@campuspress.com as attachments.

Once submitted, our team will review the theme (and all subsequent edits) for security and reliability before pushing live and/or placing on a staging environment.

Depending on the queue and complexity of the theme or plugin (or edit) this can take up to 24 hours (or more for complex use cases). 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 and plugins adhere to the WordPress Theme Guidelines and WordPress Coding Standards.

You can utilize the CampusPress Code Check plugin to test your code 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 or plugin 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 the list of checks above. If we discover performance or security issues after approval and the theme or plugin complies to all of the checks, we will collaborate with you on the next steps and best options.

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

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.

For themes that have been added and used on the network, it is not a good idea to change main folder’s names. That’s because WordPress stores this info in DB and after change like this its impossible for the system to find correct theme. It applies to regular themes, child themes and parent themes.

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.