the dawson way of doing things: a study of our path using wordpress

67
The Way of Doing Things A STUDY OF OUR PATH USING WORDPRESS DAWSON COLLEGE @MYDAWSONCOLLEGE WWW.DAWSONCOLLEGE.QC.CA JONATHAN PERLMAN @JPURPLEMAN WWW.JPURPLEMAN.CA

Upload: jonathan-perlman

Post on 23-Jan-2018

662 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

The Way of Doing ThingsA STUDY OF OUR PATH USING WORDPRESS

D AW S O N C O L L E G E

@ M Y D AW S O N C O L L E G E

W W W. D AW S O N C O L L E G E . Q C .C A

J O N AT H A N P E R L M A N

@ J P U R P L E M A N

W W W. J P U R P L E M A N .C A

Page 2: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Jonathan Perlman

• Canadian, eh! Montreal, Quebec

• Senior web developer at Dawson College

• Teacher at Dawson College’s CTD ( non-credit )

• WordCamp speaker

• Member of WPCampus

@jpurpleman | jpurpleman.ca

Page 3: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

@jpurpleman | jpurpleman.ca

Page 4: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Dawson College at a glance

@jpurpleman | jpurpleman.ca

15,000+ 10,000+ 1,000+

• Technical / vocational institution

• Centralized IT & Communications departments forstudents, faculty and staff

Page 5: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

The Early Years

@jpurpleman | jpurpleman.ca

Page 6: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

2002 – Unified website branding

@jpurpleman | jpurpleman.ca

Page 7: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

2006 – New home page and header

@jpurpleman | jpurpleman.ca

Page 8: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

2006 - Department / program websites

@jpurpleman | jpurpleman.ca

Page 9: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

2006 - CMS based sites

@jpurpleman | jpurpleman.ca

Page 10: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

@jpurpleman | jpurpleman.ca

Page 11: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

2008 Redesign

@jpurpleman | jpurpleman.ca

Page 12: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

2008 – Unified website branding

@jpurpleman | jpurpleman.ca

Page 13: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

2010 – Blogs & Writing in Disciplines

@jpurpleman | jpurpleman.ca

Page 14: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

2013 Redesign

@jpurpleman | jpurpleman.ca

Page 15: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

2013 – Long Overdue Redesign

• Editing content wasn't easy for the non-tech

• Multi-lingual support was non-existant

• Technical support was slow to respond / not reliable

• Support for CMS was dropped

@jpurpleman | jpurpleman.ca

Page 16: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

2013 – Identify Platform

@jpurpleman | jpurpleman.ca

Page 17: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

2008

@jpurpleman | jpurpleman.ca

Page 18: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

2014 – Phase 1

@jpurpleman | jpurpleman.ca

Page 19: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

2014 – 7 Month Migration

ImportAudit & Identify

Import Selection

Build a theme

Release Same Design

Reformat In WP

@jpurpleman | jpurpleman.ca

Page 20: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Migrating…

• PHP + Curl + Simple Dom

• http://simplehtmldom.sourceforge.net

• Created posts with wp_insert_post()

• Set meta value with ID of old page

• Categories

• Keep

• Revise

• Trash

• Wtf?!?

@jpurpleman | jpurpleman.ca

Page 21: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Looking back

• Successes:

• Multi-site

• We moved quickly

• Community didn't realize we were on a brand new platform

• Downsides:

• Redirect, redirect, redirect – 1900+

• Edit two sites in parallel

@jpurpleman | jpurpleman.ca

Page 22: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

2015 – Mobile & Responsive

@jpurpleman | jpurpleman.ca

Page 23: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Tips

• Create new ( unused ) menus in production and replicate it in development

• Don’t revise content in development and wait to release it• Leads to editing dev site and production site in parallel

• Beta periods may invite too much feedback• Keep them short!

• Produce documentation about the overhaul

• Highlight new features and explain choices

@jpurpleman | jpurpleman.ca

Page 24: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Current Status

@jpurpleman | jpurpleman.ca

Page 25: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Web staff

IT

3

Communications

1

Staff & Faculty

200+

@jpurpleman | jpurpleman.ca

Page 26: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Web sites

• www.dawsoncollege.qc.ca

• Computer Science

• Nursing

• Human Resources

• Registrar's Office

• Student Fees

• athletics.dawsoncollege.qc.ca

• library.dawsoncollege.qc.ca

• maps.dawsoncollege.qc.ca

@jpurpleman | jpurpleman.ca

150

25+

Page 27: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Page views as per Google Analytics

300,000

400,000

500,000

600,000

700,000

800,000

Jun-15 Jul-15 Aug-15 Sep-15 Oct-15 Nov-15 Dec-15 Jan-16 Feb-16 Mar-16 Apr-16 May-16 Jun-16

@jpurpleman | jpurpleman.ca

Page 28: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

WordPress infrastructure

@jpurpleman | jpurpleman.ca

Main website visitors

Page 29: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Web server environment

• Virtualized web servers• 16G of ram

• 4 cores

• Nginx & PHP-FPM

@jpurpleman | jpurpleman.ca

Page 30: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Security Posture

• Fortinet WAF controlling the network

• Nginx rules to block common attacks

• Direct access to files within WordPress core

• xmlrpc.php

• SQL Injection

• Unwanted user-agents

• Login page restricted to Dawson College network

@jpurpleman | jpurpleman.ca

Page 31: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Database server environment

• Virtualized database servers

• 16G of ram

• 4 cores

• MariaDB

• Every WordPress install has a unique username and password in wp-config.php

@jpurpleman | jpurpleman.ca

Page 32: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Backups

• Virtual machine backups via Veem

• MySQL Auto Backup

• https://sourceforge.net/projects/automysqlbackup/

• Daily

• Weekly

• Monthly

• Send data off-site

@jpurpleman | jpurpleman.ca

Page 33: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

WordPress updates

• Auto-update disabled

• Everything is version controlled

• We never push out X.X

• We always wait for X.X.1

• Reasons for waiting

• Stability

• Bug fixes for the major release

@jpurpleman | jpurpleman.ca

Page 34: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Project Build

@jpurpleman | jpurpleman.ca

Page 35: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Project environments

• Every project has minimum two copies

• Every developer has their own install

• Example: www.dawsoncollege.qc.ca

• Chris, Elisabeth, Jonathan

• Staging

• Production

• Push and pull database content via command line

@jpurpleman | jpurpleman.ca

Page 36: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Tools

• PHPStorm

• WP Awesome Config

• Git

• WP-CLI

• WP Migrate DB Pro

• Custom bash scripts

• https://github.com/jpurpleman/WordPress-Stuff

@jpurpleman | jpurpleman.ca

Page 37: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

WP Awesome Config

• https://gist.github.com/ashfame/1923821

@jpurpleman | jpurpleman.ca

Page 38: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Git• We track

• Core• Must-use Plugins• Plugins• Themes

• We don't track• local-config.php• dev-config.php• staging-config.php• production-config.php• .DS_STORE• *.log• .htaccess• sitemap.xml• sitemap.xml.gz• wc-logs/*• wp-content/blogs.dir/• wp-content/cache/• wp-content/upgrade/• wp-content/uploads/

@jpurpleman | jpurpleman.ca

Page 39: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Committing plugins

123438b Adding plugin: WordPress Importer at version 0.6.2

449e092 Updating plugin: Print Friendly and PDF to version 3.4.6

8d2d7e3 Updating plugin: WP Migrate DB Pro Media Files to version 1.4.4

ce0181e Updating plugin: WP Migrate DB Pro to version 1.6

3a37bd6 Updating plugin: Gravity Forms + Custom Post Types to version 3.1.3

91e2560 Updating plugin: jQuery Responsive Select Menu to version 1.5.0

83af679 Updating plugin: Gravity Forms to version 1.9.19

@jpurpleman | jpurpleman.ca

git-wp-commit-object()https://github.com/jpurpleman/WordPress-Stuff/blob/master/.bashrc

Page 40: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Themes and Plugins

@jpurpleman | jpurpleman.ca

Page 41: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Themes

• Underscores

• Canvas by WooCommerce

• Twenty Seventeen

• Twenty Sixteen

• Twenty Fifteen

• https://www.wordpress.org/themes

@jpurpleman | jpurpleman.ca

Page 42: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Tips

• In a multi-site setup

• Create your own parent themes

• Go with as little theme options as possible

• In a single site install

• Child theme as much as possible

@jpurpleman | jpurpleman.ca

Page 43: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Plugins

• Admin Columns

• Advanced Custom Fields

• CMB2

• Disable Emoji's

• Gravity Forms

• Mapplic

• Next Active Directory Integration

• Responsive Menu

• SportsPress Pro

• The Events Calendar

• TinyMCE Advanced

• User Switching

@jpurpleman | jpurpleman.ca

Page 44: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Tips

• Find plugins with reputable histories

• Use plugins that are supported and up-to-date

• Most are multi-site friendly but some are not

• Plugins like Advanced Custom Fields are heavy on the database and hard to maintain

@jpurpleman | jpurpleman.ca

Page 45: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

We use WordPress for…

@jpurpleman | jpurpleman.ca

Page 46: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Primary website

@jpurpleman | jpurpleman.ca

Page 47: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Conference sites

@jpurpleman | jpurpleman.ca

Page 48: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Specialty sites

@jpurpleman | jpurpleman.ca

Page 49: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Specialty sites

@jpurpleman | jpurpleman.ca

Page 50: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Research grant projects

@jpurpleman | jpurpleman.ca

Page 51: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Research grant projects

@jpurpleman | jpurpleman.ca

Page 52: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Research grant projects

@jpurpleman | jpurpleman.ca

Page 53: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Web-based applications

@jpurpleman | jpurpleman.ca

Page 54: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Web-based applications

@jpurpleman | jpurpleman.ca

Page 55: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Blogs

@jpurpleman | jpurpleman.ca

Page 56: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Show and tell!

@jpurpleman | jpurpleman.ca

Page 57: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Custom Backend Login

@jpurpleman | jpurpleman.ca

Page 58: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Custom dashboard widgets

@jpurpleman | jpurpleman.ca

Custom dashboard widgets

Page 59: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Admin Additions

• Editor level roles for most users

• Custom post types for content

• Ability to create forms

• Allowed the use of Customizer

@jpurpleman | jpurpleman.ca

Page 60: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Admin Additions

• Added User Guides to the pull down help

@jpurpleman | jpurpleman.ca

Page 61: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Contact blocks with Shortcode UI

@jpurpleman | jpurpleman.ca

Page 62: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Contact blocks with Shortcode UI

@jpurpleman | jpurpleman.ca

Page 63: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Contact blocks with Shortcode UI

@jpurpleman | jpurpleman.ca

Page 64: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

SharePoint Management

@jpurpleman | jpurpleman.ca

Page 65: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Looking Forward

@jpurpleman | jpurpleman.ca

Page 66: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Looking forward

• Iterative improvements pushed more frequently

• More web application development on WordPress

• Connecting sites and sharing data withREST API

@jpurpleman | jpurpleman.ca

Page 67: The Dawson Way of Doing Things: A Study of Our Path Using WordPress

Thank you!Questions?

D AW S O N C O L L E G E

@ M Y D AW S O N C O L L E G E

W W W. D AW S O N C O L L E G E . Q C .C A

J O N AT H A N P E R L M A N

@ J P U R P L E M A N

W W W. J P U R P L E M A N .C A