SlideShare a Scribd company logo
&
Scott McCollum
Extension Information Technology
scott_mccollum@ncsu.edu | @scottmccollum
Mike Vysocka
Extension Information Technology
mike_vysocka@ncsu.edu | @thewebvy
1997
Through the years ...
2004
2005 2010
2012
● Thousands of pieces of content to move
● Update and request new DNS entries
● Setup tons of 301 Redirects, RedirectMatch
● Actively communicate with users
● Provide training for users
What did WordPress give us?
● A real Content Management System
● Blogging: Point, Click, Publish
● Core Updates
● A huge user community
● ...
Could a single Wordpress
instance, without any plugins,
and just a single theme
keep 100+ site owners happy
?
BUT …
and no, we’re not using WordPress MU
YES
184 domains created
strawberries
pender growingsmallfarms
www.ces.ncsu.edu
148 are live today.
mecklenburg
651 users
have published or edited content
19,000 pages/posts
currently published
6,500,000 page views
since launching July 1, 2012
As of April 2014 ...
October 25, 2013
We went mobile
* .ces.ncsu.edu domains
alamance - alexander - alleghany - als - anr - anson - ashe - avery - beaufort - bertie - bladen -
blueberries - brunswick - buncombe - burke - cabarrus - cabbage - caldwell - calsleadership -
camden - carteret - caswell - catawba - chatham - cherokee - chowan - clay - cleveland -
colecrops - columbus - communitydevelopment - conference - cotton - craven - cucurbits -
cumberland - currituck - cutflowers - dare - davidson - davie - duplin - durham - ebci -
edgecombe - eggplant - energy - entomology - eod - espanol - evaluation - extensiongardener
- fcs - fieldtoschool - floriculture - foodsafety - forsyth - franklin - gardening - gaston - gates -
giving - graham - granville - grapes - greene - greenhousecrops - greens - growingsmallfarms -
guilford - halifax - harnett - haywood - henderson - hertford - hoke - horticulture - hyde -
intranet2 - ipm - iredell - jackson - johnston - jones - lee - lenoir - lettuce - lincoln - localfood -
macon - madison - marketingtoolkit - martin - mcdowell - meatgoats - mecklenburg - mitchell -
montgomery - moore - nash - nc10percent - ncce100years - ncchoices - nccommunitygardens
- ncdisaster - ncstepstohealth - newhanover - northampton - northcentral - northeast - onslow -
orange - pamlico - pasquotank - peaches - pender - peppers - perquimans - person -
pesticidenews - pitt - plantpathology - poinsettias - polk - postharvest - poultry - poultry4hyouth
- randolph - registration - richmond - robeson - rockingham - rootcrops - rowan - rubus -
rutherford - sampson - scotland - shellfish - soils - southcentral - southeast - soybeans -
spinach - stanly - state - stokes - strawberries - surry - sustainability - swain - sweetpotatoes -
therapeutic-hort - tobacco - tomatoes - transylvania - tyrrell - union - vance - vegetables - wake
- warren - washington - watauga - wayne - weeds - west - wilkes - wilson - yadkin - yancey
How does it work?
We use all 4th level domains
someName.ces.ncsu.edu
someOtherName.ces.ncsu.edu
... yes, we use 180+ of them.
You could easily do this for your domain
mySiteName.myuniv.edu
mySiteName2.myuniv.edu
... ^ and, they don't even have to be fourth level!
Using DNS, every sub-domain is
aliased to the same server
http://wolfpack.ces.ncsu.edu
$_SERVER[“HTTP_HOST”]
echo preg_replace(“/.ces.ncsu.edu$/”, ‘’, $_SERVER[“HTTP_HOST”] );
// prints “wolfpack”
Keep it simple.
Do your best to avoid one-off feature
requests, use a common header / footer
with only slight variations. Can the code
you write be used on 10 or more domains?
lines of code in our theme’s functions.php
file handle the edge cases, quirky requests,
custom views, and self-imploding ideas our
650+ users have for their 180+ websites
1900
/* and about 15% of those lines are
comments! */
Creating a new site is easy.
1. We get a DNS entry for the new domain
i.e. wolfpack.ces.ncsu.edu
2. We create a Wordpress user named wolfpack, just as
you normally would. This creates an entry in wp_users
We use our campus authentication to
supersede the native Wordpress login
But you could just as easily use OAuth, LDAP,
htaccess, etc.
You could argue, this adds a layer of security.
But really, we're just using it so we can map multiple real users, real people and
their logins to a single wordpress user.
3. We create an access table in the Wordpress
database that will map organizational userIDs
to a particular Wordpress username in the
wp_users table.
i.e. an email address, eXtensionID, unityID
user_id wp_user_login access_level
jesmith2@ncsu.edu wolfpack editor
jesmith2@ncsu.edu sweetpotatoes editor
brjohnson@ncsu.edu wolfpack admin
Having multiple folks sign in under the
wordpress user ‘wolfpack’ makes author
attribution messy.
Use wp_postmeta table
4. Create another custom table with some meta
data about each of your sites.
You can choose to leverage Wordpress'
wp_usermeta table instead
Use native Wordpress functions (hooks,
actions, filters)
● get_post_meta()
● get_author_meta()
● get_posts($args)
● get_usermeta()
Or write your own ...
● __get_site_type()
● __get_site_name()
● __get_author_ldap()
portal
county
county
if($siteType == ‘portal’){
get_full_banner();
}
elseif($siteType == ‘county’){
get_color_block();
get_small_banner();
}
1 theme, and a few small tweaks
the codethe visual
We put every WordPress author on an island
Use Wordpress' built-in filters and actions behind the scenes
● Centralized Google Analytics
● Content Sharing
● Content QA
● Faster Feature Rollouts
● Wider, Faster A/B Split Tests
● Easier Access Control
● One Stop Publishing
BIG Benefits
to being under the same umbrella
Link to these slides:
go.ncsu.edu/wordpress
How did we do?
joind.in/9879

More Related Content

Viewers also liked

Mahdollisuuksien metsä englanniksi
Mahdollisuuksien metsä englanniksiMahdollisuuksien metsä englanniksi
Mahdollisuuksien metsä englanniksi
Metsä puhuu
 
Teller numero 2
Teller numero 2Teller numero 2
Teller numero 2flyer94
 
Ongoing & post-campaign аналитика. В поисках точного инсайта. РИФ+КИБ 2012
Ongoing & post-campaign аналитика. В поисках точного инсайта. РИФ+КИБ 2012Ongoing & post-campaign аналитика. В поисках точного инсайта. РИФ+КИБ 2012
Ongoing & post-campaign аналитика. В поисках точного инсайта. РИФ+КИБ 2012
Max Zhiltsov
 
Autonome voertuigen ppt
Autonome voertuigen pptAutonome voertuigen ppt
Autonome voertuigen pptnielsdef
 
Mahdollisuuksien metsä ruotsiksi
Mahdollisuuksien metsä ruotsiksiMahdollisuuksien metsä ruotsiksi
Mahdollisuuksien metsä ruotsiksi
Metsä puhuu
 
Mitä yhteistä on -esitys
Mitä yhteistä on -esitysMitä yhteistä on -esitys
Mitä yhteistä on -esitys
Metsä puhuu
 
Роль стратега в digital-агентстве. «Идея» 2012
Роль стратега в digital-агентстве. «Идея» 2012Роль стратега в digital-агентстве. «Идея» 2012
Роль стратега в digital-агентстве. «Идея» 2012
Max Zhiltsov
 
Market conditions-report-current-pdf
Market conditions-report-current-pdfMarket conditions-report-current-pdf
Market conditions-report-current-pdf
Alan Rezaie
 

Viewers also liked (11)

Iss
IssIss
Iss
 
Mahdollisuuksien metsä englanniksi
Mahdollisuuksien metsä englanniksiMahdollisuuksien metsä englanniksi
Mahdollisuuksien metsä englanniksi
 
Teller numero 2
Teller numero 2Teller numero 2
Teller numero 2
 
Ongoing & post-campaign аналитика. В поисках точного инсайта. РИФ+КИБ 2012
Ongoing & post-campaign аналитика. В поисках точного инсайта. РИФ+КИБ 2012Ongoing & post-campaign аналитика. В поисках точного инсайта. РИФ+КИБ 2012
Ongoing & post-campaign аналитика. В поисках точного инсайта. РИФ+КИБ 2012
 
Iss
IssIss
Iss
 
Autonome voertuigen ppt
Autonome voertuigen pptAutonome voertuigen ppt
Autonome voertuigen ppt
 
Mahdollisuuksien metsä ruotsiksi
Mahdollisuuksien metsä ruotsiksiMahdollisuuksien metsä ruotsiksi
Mahdollisuuksien metsä ruotsiksi
 
Mitä yhteistä on -esitys
Mitä yhteistä on -esitysMitä yhteistä on -esitys
Mitä yhteistä on -esitys
 
Iss.ppt
Iss.pptIss.ppt
Iss.ppt
 
Роль стратега в digital-агентстве. «Идея» 2012
Роль стратега в digital-агентстве. «Идея» 2012Роль стратега в digital-агентстве. «Идея» 2012
Роль стратега в digital-агентстве. «Идея» 2012
 
Market conditions-report-current-pdf
Market conditions-report-current-pdfMarket conditions-report-current-pdf
Market conditions-report-current-pdf
 

Similar to Powering 180+ domains with a single instance of Wordpress (w/o Multi-site)

50 social bookmarking site list
50 social bookmarking site list50 social bookmarking site list
50 social bookmarking site list
tam nguyen
 
Splunk at Oscar Health
Splunk at Oscar HealthSplunk at Oscar Health
Splunk at Oscar Health
Splunk
 
Don’t Get Caught With Your Digital Assets Hanging Out!
Don’t Get Caught With Your Digital Assets Hanging Out!Don’t Get Caught With Your Digital Assets Hanging Out!
Don’t Get Caught With Your Digital Assets Hanging Out!
Rich Benjamin
 
Business 2.0
Business 2.0Business 2.0
Business 2.0
SealTree -
 
The Original Hypertext Preprocessor
The Original Hypertext PreprocessorThe Original Hypertext Preprocessor
The Original Hypertext Preprocessor
Drew McLellan
 
Website Essentials Traverse City September 2008
Website Essentials Traverse City   September 2008Website Essentials Traverse City   September 2008
Website Essentials Traverse City September 2008
Michigan Nonprofit Association
 
Sucuri Webinar: How to clean hacked WordPress sites
Sucuri Webinar: How to clean hacked WordPress sitesSucuri Webinar: How to clean hacked WordPress sites
Sucuri Webinar: How to clean hacked WordPress sites
Sucuri
 
Introduction to Social Networking Sites and websites
Introduction to Social Networking Sites and websitesIntroduction to Social Networking Sites and websites
Introduction to Social Networking Sites and websites
Shruti Arya
 
Content Strategy Applied Deck (Oct 17)
Content Strategy Applied Deck (Oct 17)Content Strategy Applied Deck (Oct 17)
Content Strategy Applied Deck (Oct 17)
Matt Hobbs
 
Zanzi make-google-love-your-site-v4 b-1.2
Zanzi make-google-love-your-site-v4 b-1.2Zanzi make-google-love-your-site-v4 b-1.2
Zanzi make-google-love-your-site-v4 b-1.2
Ned Wells
 
Serviceful Serverless Computing Topics
Serviceful Serverless Computing TopicsServiceful Serverless Computing Topics
Serviceful Serverless Computing Topics
Daniel Zivkovic
 
Climbing Out of the Box: Mashing up our Community
Climbing Out of the Box: Mashing up our CommunityClimbing Out of the Box: Mashing up our Community
Climbing Out of the Box: Mashing up our Community
David King
 
Website hosting and migration with amazon web services a practical guide to ...
Website hosting and migration with amazon web services  a practical guide to ...Website hosting and migration with amazon web services  a practical guide to ...
Website hosting and migration with amazon web services a practical guide to ...
ERRABEHY
 
Modulo iv cofoce.pptx
Modulo iv cofoce.pptxModulo iv cofoce.pptx
Modulo iv cofoce.pptx
Moises Cielak
 
Elasticsearch : petit déjeuner du 13 mars 2014
Elasticsearch : petit déjeuner du 13 mars 2014Elasticsearch : petit déjeuner du 13 mars 2014
Elasticsearch : petit déjeuner du 13 mars 2014
ALTER WAY
 
Wordpress development 101
Wordpress development 101Wordpress development 101
Wordpress development 101
Commit Software Sh.p.k.
 
Creating Your Own Personal Learning Network
Creating Your Own Personal Learning NetworkCreating Your Own Personal Learning Network
Creating Your Own Personal Learning Network
Carl Keller
 
Centralizing News through WordPress REST API
Centralizing News through WordPress REST APICentralizing News through WordPress REST API
Centralizing News through WordPress REST API
Todd McKee
 
WTF is Semantic Web?
WTF is Semantic Web?WTF is Semantic Web?
WTF is Semantic Web?
milesw
 

Similar to Powering 180+ domains with a single instance of Wordpress (w/o Multi-site) (20)

50 social bookmarking site list
50 social bookmarking site list50 social bookmarking site list
50 social bookmarking site list
 
Splunk at Oscar Health
Splunk at Oscar HealthSplunk at Oscar Health
Splunk at Oscar Health
 
Don’t Get Caught With Your Digital Assets Hanging Out!
Don’t Get Caught With Your Digital Assets Hanging Out!Don’t Get Caught With Your Digital Assets Hanging Out!
Don’t Get Caught With Your Digital Assets Hanging Out!
 
Business 2.0
Business 2.0Business 2.0
Business 2.0
 
The Original Hypertext Preprocessor
The Original Hypertext PreprocessorThe Original Hypertext Preprocessor
The Original Hypertext Preprocessor
 
Website Essentials Traverse City September 2008
Website Essentials Traverse City   September 2008Website Essentials Traverse City   September 2008
Website Essentials Traverse City September 2008
 
Website Essentials Traverse City September 2008
Website Essentials   Traverse City   September 2008Website Essentials   Traverse City   September 2008
Website Essentials Traverse City September 2008
 
Sucuri Webinar: How to clean hacked WordPress sites
Sucuri Webinar: How to clean hacked WordPress sitesSucuri Webinar: How to clean hacked WordPress sites
Sucuri Webinar: How to clean hacked WordPress sites
 
Introduction to Social Networking Sites and websites
Introduction to Social Networking Sites and websitesIntroduction to Social Networking Sites and websites
Introduction to Social Networking Sites and websites
 
Content Strategy Applied Deck (Oct 17)
Content Strategy Applied Deck (Oct 17)Content Strategy Applied Deck (Oct 17)
Content Strategy Applied Deck (Oct 17)
 
Zanzi make-google-love-your-site-v4 b-1.2
Zanzi make-google-love-your-site-v4 b-1.2Zanzi make-google-love-your-site-v4 b-1.2
Zanzi make-google-love-your-site-v4 b-1.2
 
Serviceful Serverless Computing Topics
Serviceful Serverless Computing TopicsServiceful Serverless Computing Topics
Serviceful Serverless Computing Topics
 
Climbing Out of the Box: Mashing up our Community
Climbing Out of the Box: Mashing up our CommunityClimbing Out of the Box: Mashing up our Community
Climbing Out of the Box: Mashing up our Community
 
Website hosting and migration with amazon web services a practical guide to ...
Website hosting and migration with amazon web services  a practical guide to ...Website hosting and migration with amazon web services  a practical guide to ...
Website hosting and migration with amazon web services a practical guide to ...
 
Modulo iv cofoce.pptx
Modulo iv cofoce.pptxModulo iv cofoce.pptx
Modulo iv cofoce.pptx
 
Elasticsearch : petit déjeuner du 13 mars 2014
Elasticsearch : petit déjeuner du 13 mars 2014Elasticsearch : petit déjeuner du 13 mars 2014
Elasticsearch : petit déjeuner du 13 mars 2014
 
Wordpress development 101
Wordpress development 101Wordpress development 101
Wordpress development 101
 
Creating Your Own Personal Learning Network
Creating Your Own Personal Learning NetworkCreating Your Own Personal Learning Network
Creating Your Own Personal Learning Network
 
Centralizing News through WordPress REST API
Centralizing News through WordPress REST APICentralizing News through WordPress REST API
Centralizing News through WordPress REST API
 
WTF is Semantic Web?
WTF is Semantic Web?WTF is Semantic Web?
WTF is Semantic Web?
 

Recently uploaded

GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 

Recently uploaded (20)

GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 

Powering 180+ domains with a single instance of Wordpress (w/o Multi-site)

  • 1. & Scott McCollum Extension Information Technology scott_mccollum@ncsu.edu | @scottmccollum Mike Vysocka Extension Information Technology mike_vysocka@ncsu.edu | @thewebvy
  • 5.
  • 6. ● Thousands of pieces of content to move ● Update and request new DNS entries ● Setup tons of 301 Redirects, RedirectMatch ● Actively communicate with users ● Provide training for users
  • 7. What did WordPress give us? ● A real Content Management System ● Blogging: Point, Click, Publish ● Core Updates ● A huge user community ● ...
  • 8. Could a single Wordpress instance, without any plugins, and just a single theme keep 100+ site owners happy ? BUT … and no, we’re not using WordPress MU
  • 9. YES
  • 10. 184 domains created strawberries pender growingsmallfarms www.ces.ncsu.edu 148 are live today. mecklenburg
  • 11. 651 users have published or edited content 19,000 pages/posts currently published 6,500,000 page views since launching July 1, 2012 As of April 2014 ...
  • 12.
  • 13. October 25, 2013 We went mobile
  • 14. * .ces.ncsu.edu domains alamance - alexander - alleghany - als - anr - anson - ashe - avery - beaufort - bertie - bladen - blueberries - brunswick - buncombe - burke - cabarrus - cabbage - caldwell - calsleadership - camden - carteret - caswell - catawba - chatham - cherokee - chowan - clay - cleveland - colecrops - columbus - communitydevelopment - conference - cotton - craven - cucurbits - cumberland - currituck - cutflowers - dare - davidson - davie - duplin - durham - ebci - edgecombe - eggplant - energy - entomology - eod - espanol - evaluation - extensiongardener - fcs - fieldtoschool - floriculture - foodsafety - forsyth - franklin - gardening - gaston - gates - giving - graham - granville - grapes - greene - greenhousecrops - greens - growingsmallfarms - guilford - halifax - harnett - haywood - henderson - hertford - hoke - horticulture - hyde - intranet2 - ipm - iredell - jackson - johnston - jones - lee - lenoir - lettuce - lincoln - localfood - macon - madison - marketingtoolkit - martin - mcdowell - meatgoats - mecklenburg - mitchell - montgomery - moore - nash - nc10percent - ncce100years - ncchoices - nccommunitygardens - ncdisaster - ncstepstohealth - newhanover - northampton - northcentral - northeast - onslow - orange - pamlico - pasquotank - peaches - pender - peppers - perquimans - person - pesticidenews - pitt - plantpathology - poinsettias - polk - postharvest - poultry - poultry4hyouth - randolph - registration - richmond - robeson - rockingham - rootcrops - rowan - rubus - rutherford - sampson - scotland - shellfish - soils - southcentral - southeast - soybeans - spinach - stanly - state - stokes - strawberries - surry - sustainability - swain - sweetpotatoes - therapeutic-hort - tobacco - tomatoes - transylvania - tyrrell - union - vance - vegetables - wake - warren - washington - watauga - wayne - weeds - west - wilkes - wilson - yadkin - yancey
  • 15. How does it work?
  • 16. We use all 4th level domains someName.ces.ncsu.edu someOtherName.ces.ncsu.edu ... yes, we use 180+ of them. You could easily do this for your domain mySiteName.myuniv.edu mySiteName2.myuniv.edu ... ^ and, they don't even have to be fourth level!
  • 17. Using DNS, every sub-domain is aliased to the same server
  • 18.
  • 20.
  • 21. Keep it simple. Do your best to avoid one-off feature requests, use a common header / footer with only slight variations. Can the code you write be used on 10 or more domains?
  • 22. lines of code in our theme’s functions.php file handle the edge cases, quirky requests, custom views, and self-imploding ideas our 650+ users have for their 180+ websites 1900 /* and about 15% of those lines are comments! */
  • 23. Creating a new site is easy. 1. We get a DNS entry for the new domain i.e. wolfpack.ces.ncsu.edu 2. We create a Wordpress user named wolfpack, just as you normally would. This creates an entry in wp_users
  • 24. We use our campus authentication to supersede the native Wordpress login But you could just as easily use OAuth, LDAP, htaccess, etc. You could argue, this adds a layer of security. But really, we're just using it so we can map multiple real users, real people and their logins to a single wordpress user.
  • 25. 3. We create an access table in the Wordpress database that will map organizational userIDs to a particular Wordpress username in the wp_users table. i.e. an email address, eXtensionID, unityID user_id wp_user_login access_level jesmith2@ncsu.edu wolfpack editor jesmith2@ncsu.edu sweetpotatoes editor brjohnson@ncsu.edu wolfpack admin
  • 26. Having multiple folks sign in under the wordpress user ‘wolfpack’ makes author attribution messy. Use wp_postmeta table
  • 27. 4. Create another custom table with some meta data about each of your sites.
  • 28. You can choose to leverage Wordpress' wp_usermeta table instead
  • 29. Use native Wordpress functions (hooks, actions, filters) ● get_post_meta() ● get_author_meta() ● get_posts($args) ● get_usermeta() Or write your own ... ● __get_site_type() ● __get_site_name() ● __get_author_ldap()
  • 30. portal county county if($siteType == ‘portal’){ get_full_banner(); } elseif($siteType == ‘county’){ get_color_block(); get_small_banner(); } 1 theme, and a few small tweaks the codethe visual
  • 31. We put every WordPress author on an island
  • 32. Use Wordpress' built-in filters and actions behind the scenes
  • 33.
  • 34. ● Centralized Google Analytics ● Content Sharing ● Content QA ● Faster Feature Rollouts ● Wider, Faster A/B Split Tests ● Easier Access Control ● One Stop Publishing BIG Benefits to being under the same umbrella
  • 35. Link to these slides: go.ncsu.edu/wordpress How did we do? joind.in/9879