Common Procedures

Giving Day Redirects

The Office of Communications provides redirects to GiveCampus campaigns for Giving Day. All that is needed is to talk to Advancement and see what pages they need redirected.
Redirects will go into the .htaccess file on the on-prem server, in the form of:
RewriteRule ^givingday/?$ [NC,L]
RewriteRule ^give/?$ [NC,L]
RewriteRule ^friendsofathletics/?$ [NC,L]
You'll also need to change the "Join Online Today" button on this page so that it points the the "friendsofart" GiveCampus campaign.
There is typically a redirect in the .htaccess file of Dare Northward too.

How To Move Civil Discourse Posts to the Archive

  1. 1.
    Export posts from Civil Discourse so you have xml file
  2. 2.
    Switch to commeditor user
  3. 3.
    Go to Civil Discourse Archive
  4. 4.
    Run WP import
  5. 5.
    If prompted, do not assign any users - it will assign all of them to the current user (commeditor) which is good
  6. 6.
    Edit all posts to include author in plain text in post content

User Sync

If you need to sync missing user data at any time, go to and select Users->Colby Sync Users. You can run the sync on a particular username.

Quick FERPA Web Forms

If we have a need to embed publicly accessible web forms that ask for FERPA personally identifiable student information, and only select people around campus should have access to the results, the best solution is to use a google form, built inside the Google account of one of the users permitted to view the results. The results will then feed into a Google Sheet and that Google Sheet can then be shared with other as needed. If no personally identifiable information is requested in the form, we should use FormStack.

Updating Wordpress Premium Plugins in

How to Update the Academic Calendar

  1. 2.
    In WordPress, select "Table Press"
  2. 3.
    Go to the last page and see if tables have already been created for the upcoming year
  3. 4.
    If the tables exist, note the number of each table: Academic Calendar, Class, and Holiday
  4. 6.
    Select "Edit Page"
  5. 7.
    Change the page name and the URL to reflect the upcoming year
  6. 8.
    In the body, update the headline, the dates for “adopted” and “revised,” and the “table-id numbers”

To Create New Tables

  1. 2.
    In WordPress, select “Table Press”
  2. 3.
    Go to the last page, and “Copy:”
    1. 1.
      The oldest “Academic Calendar” table
    2. 2.
      The oldest “Academic Calendar – Class” table
    3. 3.
      The oldest “Academic Calendar - Holidays” table
  3. 4.
    Update each new table name to reflect the new year
  4. 5.
    Update information on the table using information from the registrar

How to Make a New Course Catalogue for a New Year

Search for "catalogue"
When hovering, click "Replicate" on ""
Fill out the fields like this example (but obviously for your new year)
Click "Replicate Now"
Change this field to reflect the new year (in the form of [two-digit year current][two-digit year future])
Under Settings > Colby Catalogue Settings
The static PDF is accessible through
The post should look something like:
The Colby College Catalogue is available for download free of charge as a single, searchable <a href="">PDF file</a>, updated every two hours.
PDFs of separate departments or programs may be downloaded by browsing departments and programs or majors and minors.
<li><a href="">View &amp; Download 2020-2021 Catalogue (PDF) &gt;</a></li>
<hr />
<h3>Catalogue Archives</h3>
<li><a href="">2018-2019</a></li>
<li><a href="">2017-2018</a></li>
<li><a href="">2016-2017</a></li>
<li><a href="">2015-2016</a></li>
<li><a href="">2014-2015</a></li>
<li><a href="">2013-2014</a></li>
<li><a href="">2012-2013</a></li>
<li><a href="">2011-2012</a></li>
<hr />
<a href="">Colby Catalogue Archive, 1836 to Present &gt;</a>

Manual Menu Changes

  1. 1.
    Academic Calendars in the Appendices section
    1. 1.
      Change the URL so that it goes to the current calendar page at (or the URL for the current calendar)
  2. 2.
    Degrees and Honors Awarded at Commencement 20xx in the Appendices section
    1. 1.
      Update the label so that it reflects last year’s commencement (e.g. the 2020-21 catalogue lists degrees and honors for Commencement 2020, the 2021-22 catalogue will list degrees and honors for Commencement 2021, etc.)

Adding a New Department or Program

Some gotchas:
  • The department code needs to be two characters like "AR" (Art) or "CB" (Colby Bigelow Program)
  • The new department/program needs to have the same title as the post

Redirecting to the current year's academic calendar

Keith needs to modify the redirect from to the current year, a page under[year]-academic-calendar.

Integrating Material Icons with Elementor

Elementor has a Custom Icons upload feature that we'll be using to upload our standard icon set.
Note: In order for this to work, the site's wp-config.php file needs to contain these lines:
define( 'WP_TEMP_DIR', '/app/web/wp-content/uploads/tmp/');
define('FS_METHOD', 'direct');
Unfortunately, this is a multistep process. I'll leave the final files as downloads at the end for convenience.
  1. 1.
    Clone Material Icons git repo to your local
  2. 2.
    Make a folder called "final_material_icons" in the same directory as git repo
  3. 3.
    Place the into the same directory as git repo and run via .\
  4. 4.
    Go to and click "Import Icons" in the upper right
  5. 5.
    Select all svgs in "final_material_icons" and import
  6. 6.
    Click to select all
  1. 1.
    Click "Generate Font" in lower right
  2. 2.
    Click cog icon and make sure it looks like:
  1. 1.
    Click Download"
  2. 2.
    Go to Elementor site and into wp/wp-admin/edit.php?post_type=elementor_icons
  3. 3.
    Click "Create New"
  4. 4.
    Upload new icon set previously downloaded from Icomoon
Download for
Download for Material Icons

Find/Replace on a Large File with sed

sed -i'' -e 's/https:\/\/[URL to be replaced]/https:\/\/[new URL]/g' sql_file.sql

Commencement Live Steams

We need to load test commencement to make sure the site can handle as much traffic we expect and more. We do this using Locust, a python-based load testing tool.

Embed codes and Site Changes

It is important to add the embed codes before caching everything through Cloudflare. Otherwise, you'll need to manually purge the cache. Once everything is cached through Cloudflare, upon all future changes, the cache will need to be purged.

Cloudflare Settings

Load Testing

We need to schedule a test with ITS, where they start the livestream and we can then run the load test.
Here's an example of a locust test:
import time
from locust import HttpUser, task, between, constant
class QuickstartUser(HttpUser):
wait_time = constant(1200)
def homepage(self):
home_res = self.client.get("/")
def somepage(self):
To run the test, do:
locust -f
If you experience any slowness on your local machine that skew the numbers, you may need to run a bunch of workers. In that case, run a few different tabs in your terminal and have one be the master thread:
locust -f --master
and the others be the workers:
locust -f --worker
When prompted, enter in the site and load details in the browser. We usually try to shoot for 10000 users with 20 coming online every second. That should emulate a ton of users all logging on over 10 minutes before an event.

Interpreting the Results

With Cloudflare, the response time should never really take over 1 second, 2 seconds at maximum. If you see a spike, chances are something is wrong with how the site is caching.

The Day Of

There are only two things to monitor the day of the event. The first is the Cloudflare caching performance:, the second is the live analytics in SiteImprove. Both should give you a clear picture of what is happening and how many users are coming online and when.