SlideShare a Scribd company logo
1 of 25
WordPress as a CMS
Justin Sisley
justin.sisley@gmail.com
www.justinsisley.com

Matthew Vaccaro
mattyvac@gmail.com
www.matthewvaccaro.com




“Make an enterprise
level CMS out of
WordPress?”
Slides!



http://www.slideshare.net/Mattyvac




      Wordpress as a CMS - http://www.slideshare.net/Mattyvac
Wiki Says…

   Wordpress as a CMS
The Definition of a CMS

A web content management system (WCMS)[1] is a
software system that
provides website authoring, collaboration, and
administration tools designed to allow users with little
knowledge of web programming languages or markup
languages to create and manage website content with
relative ease. - Wikipedia



                         Wordpress as a CMS
A Brief History

      Wordpress as a CMS
…a [very] brief history.
    “WordPress was born out of a desire for an elegant, well-architectured personal
    publishing system built on PHP and MySQL and licensed under the GPLv2 (or later). It is
    the official successor of b2/cafelog. WordPress is fresh software, but its roots and
    development go back to 2001. It is a mature and stable product. We hope by focusing on
    user experience and web standards we can create a tool different from anything else out
    there.” – wordpress.org/about/




                                            Serious Blogging


    Serious Forking


                                                                      Serious CMSing


                                      Wordpress as a CMS
Why You’re Here


      WordPress as a CMS
…and why we’re here.
WordPress today
• Robust, customizable platform that is very CMSish
• Allows the use of many core CMS principles such as media re-use and
  workflow

WordPress is not just a blog platform...
• ...and is not just a convenient CMS for small client projects, it’s much more!
• Some may be doing this already:
   – Network of client sites for ease of updating
   – Network of blogs under one media company
• ….but what about HUGE single sites!?




                                     Wordpress as a CMS
“You’re gonna
need a bigger
CMS” –Brody




        Wordpress as a CMS
Why We Chose WordPress

What we were up against:
• Enterprise systems based on .NET and ColdFusion
• Ektron, SiteCore, etc.
• ‘Enterprise mentality’
• Enterprise

What we needed:
• Dynamically driven (database) content
• Ability for multiple users to update the website
• Easier integration of social media and API’s
    – Brightcove, Flickr, etc.
• Better navigation and information architecture
• More modern responsive design
• Integrated search and knowledge base


                                 Wordpress as a CMS
“Say ‘enterprise’
again. Say ‘enterprise’
again, I dare you, I
double dare you.”
-Jules




            Wordpress as a CMS
Why We Chose WordPress
What we hoped to achieve:
• Stronger engagement of users
• Better, more timely, communication of information internally and externally
• Reflects the ‘21st Century’ college motto
• Better adapts to users needs
• More comprehensive metrics
and analytics collection




                                     Wordpress as a CMS
Why We Chose WordPress
 –   Cost
 –   Pre-existing knowledge, no consulting needed like proprietary systems
 –   Positive outlook for WP as a platform
 –   Massive community




                              Wordpress as a CMS
How We’re Using
WordPress

     Wordpress as a CMS
How We’re Using WordPress as a CMS
College of Medicine CMS design and development process

•   Desired functionality brainstorming
     – What features already exist
     – What features did we have to create for ourselves
     – Using third-party plugins vs. writing our own
            •   Use as few third party plugins as possible (Less than 5)

•   Multisite vs. single site considerations
     – Get_blog_list(); and switch_to_blog(); is bad! (Sort of, but let us explain…)
            •   Get_blog_(); is deprecated – and horrible
     –   Network search, or anything network wide

•   User roles, permissions and capabilities
     – Content Editor -> Content Manager -> Approver/Publisher
     – Remove options from users on a per role or per site basis (RoleScoper Plugin)

•   JavaScript
      – Ajax
      – Script management
      – Closures
      – Use only what you need


                                                     Wordpress as a CMS
How We’re Using WordPress as a CMS
Evolution of design

•   ‘Web 1.0’ to ‘Web 2.0’
•   Static to dynamic
•   Designing ‘for the group’




                                Wordpress as a CMS
How We’re Using WordPress as a CMS
TA-DA!
                                     Custom
                                     wp_list_pages
                                     functions, jQuery
                                     audience panel




                                    Custom
                                    fields, custom
                                    post type
                                    events
                                    calendar



               Wordpress as a CMS
How We’re Using WordPress as a CMS
Evolution of design                                                    /*** @group general ***/
• Theming and templates                                                ::-moz-selection {
                                                                          background-color: #9bd2f1;
     –   Not every page needs a template                                  color: #fff;
     –   Use PHP to your advantage when creating                       }
         templates                                                     /*** @group headings ***/
           •   Consolidate templates with statements                   h1 a, h2 a, h3 a {
                                                                          -webkit-text-stroke: 1px transparent;
                                                                       }
Design Considerations                                                  /*** @group header ***/
• Combine and minimize CSS and jQuery                                  header {
• Use markers in CSS (@group)                                             overflow: auto;
                                                                          margin-bottom: 10px;
• Includes make life easier                                            }
     –   @import for CSS                                                /*** @group universal bar style ***/
     –   <?php require_once ('includes/site-head'); ?>                 .grey-bar {
                                                                          border: 1px solid #ccc;
     –   <?php get_template_part('includes/site-head');                   font-size: 14px;
         ?>                                                               text-shadow: 0px 1px 0px #FFF;
                                                                       }
                                                                       /*** @group navigation - top ***/
                                                                       ul#top-navigation {
                                                                          overflow: hidden;
                                                                          width: 955px;
                                                                          z-index: 19999;
                                                                          margin: 0 auto;
                                                                          clear: both;
                                                                       }


                                                       Wordpress as a CMS
How We’re Using WordPress as a CMS
Make use of the WordPress functions!
•  …The ones above
•  wp_list_pages(); (wp_get_pages(); also rocks!)
•  get_queried_object();
•  get_top_ancestor();
…and TONS more


   <?php
   $bodyClass = get_body_class();
   $currPageID = get_the_ID();
   $currPageActive = get_top_ancestor($currPageID);
   $activeClass = 'activeNav';

   if (in_array("root-parent-id-".$currPageActive, $bodyClass) && $currPageActive == 8) {
   $aboutActive = $activeClass;
   }elseif(in_array("root-parent-id-".$currPageActive, $bodyClass) && $currPageActive == 12) {
   $acadActive = $activeClass;
   }
   ?>

   <ul id="sideNavList">
       <li class="homeBackground"><a href="<?php bloginfo('url'); ?>" class="homeLink">Return Home</a></li>
       <li><a href="<?php echo get_permalink( 8 ); ?>" class="<?php echo $aboutActive; ?>">About</a>
         <ul class="children <?php echo $aboutActive; ?>">
           <?php side_nav_list_pages( 8 ); //custom function ?>
         </ul>
       </li>
   </ul>




                                                 Wordpress as a CMS
How We’re Using WordPress as a CMS
Security
•   Nonces
•   Mysql_real_escape_string
•   Theme security = plugin security!
       –    functions.php is just as important as a plugin
       –    Escaping non-plugin and non-functions.php code when using code within themes
•     Awareness is key

    <?php

    $rss = fetch_feed('http://www.external-url.com/feed/?post_type=news');

    if (!is_wp_error( $rss ) ) :
          $maxitems = $rss->get_item_quantity(7);
          $rss_items = $rss->get_items(0, $maxitems);
    endif; ?>

    <ul>

    <?php if ($maxitems == 0 ) echo $rss->get_error_message();
          else foreach ( $rss_items as $item ) : ?>

    <li> <a href='<?php echo esc_url( $item->get_permalink() ); ?>' title='<?php echo 'Posted '.$item->get_date('j
    F Y | g:i a'); ?>'> <?php echo esc_html( $item->get_title() ); ?></a> </li>

    <?php endforeach; ?>

    </ul>




                                                       Wordpress as a CMS
How We’re Using WordPress as a CMS
Backups
• CRON is your friend!

Multi-server deployment
• Separate environments (development, staging, production)
• DB Syncing
    – Production to development every night (CRON)

Revisions & Version Control
• Capistrano, git, etc.
• SVN is getting older; distributed is getting newer.




                                       Wordpress as a CMS
How We’re Using WordPress as a CMS

Content organization strategies
• Custom post types
   – Cutting the ‘blog’ out of WordPress
• Custom fields
• Naming documents (meta data)

Authoring and publishing workflow
• Revisions and review process
• Push users to create and update content



                              Wordpress as a CMS
How We’re Using WordPress as a CMS

Upkeep & Maintenance
• Email alert system ‘page out of date’
• Queries
• Remove old revisions and empty the trash



  DELETE a,b,c
  FROM wp_posts a
  LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
  LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
  WHERE a.post_type = 'revision'



                                   Wordpress as a CMS
TO THE FUTURE!


     Wordpress as a CMS
But what about…the future, man?

• Exponential content growth
  – When someone can, they will
  – Old information gets archived, new information is
    created
• Cosmetic progression
  – Keeping up with the cool kids
• Workflow
• Maintenance



                       Wordpress as a CMS

More Related Content

What's hot

Enhancing Spring MVC Web Applications Progressively with Spring JavaScript
Enhancing Spring MVC Web Applications Progressively with Spring JavaScriptEnhancing Spring MVC Web Applications Progressively with Spring JavaScript
Enhancing Spring MVC Web Applications Progressively with Spring JavaScriptJeremy Grelle
 
Content Management Systems (CMS) & Wordpress theme development
Content Management Systems (CMS) & Wordpress theme developmentContent Management Systems (CMS) & Wordpress theme development
Content Management Systems (CMS) & Wordpress theme developmentDave Wallace
 
Anatomy of a Wordpress theme
Anatomy of a Wordpress themeAnatomy of a Wordpress theme
Anatomy of a Wordpress themeDave Wallace
 
Installing wordpress
Installing wordpressInstalling wordpress
Installing wordpressDave Wallace
 
Understanding WordPress Multisite
Understanding WordPress MultisiteUnderstanding WordPress Multisite
Understanding WordPress MultisiteRyan Imel
 
Word press intro 4x3 draft 12
Word press intro 4x3 draft 12Word press intro 4x3 draft 12
Word press intro 4x3 draft 12msz
 
Tech 802: Web Design Part 2
Tech 802: Web Design Part 2Tech 802: Web Design Part 2
Tech 802: Web Design Part 2somisguided
 
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...Jer Clarke
 
Wordpress essential training - Wordpress Presentation PPT
Wordpress essential training - Wordpress Presentation PPTWordpress essential training - Wordpress Presentation PPT
Wordpress essential training - Wordpress Presentation PPTAbdulla2410
 
Introducing MongoPress
Introducing MongoPressIntroducing MongoPress
Introducing MongoPressMark Smalley
 
MIE Toolbox, a Case for Drupal as an Application Framework
MIE Toolbox, a Case for Drupal as an Application FrameworkMIE Toolbox, a Case for Drupal as an Application Framework
MIE Toolbox, a Case for Drupal as an Application FrameworkLev Tsypin
 
Introducing MongoBase
Introducing MongoBaseIntroducing MongoBase
Introducing MongoBaser1dotmy
 
Creating Layouts and Landing Pages for Drupal 8 - DrupalCon Dublin
Creating Layouts and Landing Pages for Drupal 8 - DrupalCon DublinCreating Layouts and Landing Pages for Drupal 8 - DrupalCon Dublin
Creating Layouts and Landing Pages for Drupal 8 - DrupalCon DublinSuzanne Dergacheva
 
Responsive Websites
Responsive WebsitesResponsive Websites
Responsive WebsitesJoe Seifi
 
Put A Map On It! Enhanced geolocation in WordPress with Geo Mashup
Put A Map On It! Enhanced geolocation in WordPress with Geo MashupPut A Map On It! Enhanced geolocation in WordPress with Geo Mashup
Put A Map On It! Enhanced geolocation in WordPress with Geo MashupJer Clarke
 
One Site, Two Servers: A Cascade Server CMS Solution, by David Dent
One Site, Two Servers: A Cascade Server CMS Solution, by David DentOne Site, Two Servers: A Cascade Server CMS Solution, by David Dent
One Site, Two Servers: A Cascade Server CMS Solution, by David Denthannonhill
 
WordPress for Education PPT
WordPress for Education PPTWordPress for Education PPT
WordPress for Education PPTjekkilekki
 

What's hot (20)

Enhancing Spring MVC Web Applications Progressively with Spring JavaScript
Enhancing Spring MVC Web Applications Progressively with Spring JavaScriptEnhancing Spring MVC Web Applications Progressively with Spring JavaScript
Enhancing Spring MVC Web Applications Progressively with Spring JavaScript
 
Content Management Systems (CMS) & Wordpress theme development
Content Management Systems (CMS) & Wordpress theme developmentContent Management Systems (CMS) & Wordpress theme development
Content Management Systems (CMS) & Wordpress theme development
 
Anatomy of a Wordpress theme
Anatomy of a Wordpress themeAnatomy of a Wordpress theme
Anatomy of a Wordpress theme
 
Installing wordpress
Installing wordpressInstalling wordpress
Installing wordpress
 
Understanding WordPress Multisite
Understanding WordPress MultisiteUnderstanding WordPress Multisite
Understanding WordPress Multisite
 
Word press intro 4x3 draft 12
Word press intro 4x3 draft 12Word press intro 4x3 draft 12
Word press intro 4x3 draft 12
 
Tech 802: Web Design Part 2
Tech 802: Web Design Part 2Tech 802: Web Design Part 2
Tech 802: Web Design Part 2
 
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
 
Wordpress essential training - Wordpress Presentation PPT
Wordpress essential training - Wordpress Presentation PPTWordpress essential training - Wordpress Presentation PPT
Wordpress essential training - Wordpress Presentation PPT
 
CSS3 3D Workshop
CSS3 3D WorkshopCSS3 3D Workshop
CSS3 3D Workshop
 
Introducing MongoPress
Introducing MongoPressIntroducing MongoPress
Introducing MongoPress
 
MIE Toolbox, a Case for Drupal as an Application Framework
MIE Toolbox, a Case for Drupal as an Application FrameworkMIE Toolbox, a Case for Drupal as an Application Framework
MIE Toolbox, a Case for Drupal as an Application Framework
 
Introducing MongoBase
Introducing MongoBaseIntroducing MongoBase
Introducing MongoBase
 
WordPress Multisite
WordPress MultisiteWordPress Multisite
WordPress Multisite
 
Creating Layouts and Landing Pages for Drupal 8 - DrupalCon Dublin
Creating Layouts and Landing Pages for Drupal 8 - DrupalCon DublinCreating Layouts and Landing Pages for Drupal 8 - DrupalCon Dublin
Creating Layouts and Landing Pages for Drupal 8 - DrupalCon Dublin
 
Responsive Websites
Responsive WebsitesResponsive Websites
Responsive Websites
 
Intro to HTML 5 / CSS 3
Intro to HTML 5 / CSS 3Intro to HTML 5 / CSS 3
Intro to HTML 5 / CSS 3
 
Put A Map On It! Enhanced geolocation in WordPress with Geo Mashup
Put A Map On It! Enhanced geolocation in WordPress with Geo MashupPut A Map On It! Enhanced geolocation in WordPress with Geo Mashup
Put A Map On It! Enhanced geolocation in WordPress with Geo Mashup
 
One Site, Two Servers: A Cascade Server CMS Solution, by David Dent
One Site, Two Servers: A Cascade Server CMS Solution, by David DentOne Site, Two Servers: A Cascade Server CMS Solution, by David Dent
One Site, Two Servers: A Cascade Server CMS Solution, by David Dent
 
WordPress for Education PPT
WordPress for Education PPTWordPress for Education PPT
WordPress for Education PPT
 

Viewers also liked

Creating and Managing Content on Your WordPress Site
Creating and Managing Content on Your WordPress SiteCreating and Managing Content on Your WordPress Site
Creating and Managing Content on Your WordPress SiteKelly Henderson
 
Website Performance, Engagement, and Leads
Website Performance, Engagement, and LeadsWebsite Performance, Engagement, and Leads
Website Performance, Engagement, and LeadsTrust EMedia
 
Building Your First Widget
Building Your First WidgetBuilding Your First Widget
Building Your First WidgetChris Wilcoxson
 
THE WORDPRESS DASHBOARD DEMYSTIFIED
THE WORDPRESS DASHBOARD DEMYSTIFIEDTHE WORDPRESS DASHBOARD DEMYSTIFIED
THE WORDPRESS DASHBOARD DEMYSTIFIEDBobWP.com
 
WordPress 101 - Foundation Friday at WordCamp Chicago 2014 #WCChi
WordPress 101 - Foundation Friday at WordCamp Chicago 2014 #WCChiWordPress 101 - Foundation Friday at WordCamp Chicago 2014 #WCChi
WordPress 101 - Foundation Friday at WordCamp Chicago 2014 #WCChiShanta Nathwani
 
Acessibilidade Web agora é obrigatória. Estamos preparados?
Acessibilidade Web agora é obrigatória. Estamos preparados?Acessibilidade Web agora é obrigatória. Estamos preparados?
Acessibilidade Web agora é obrigatória. Estamos preparados?Hans Mösl
 
A Plugin For That presentation
A Plugin For That presentationA Plugin For That presentation
A Plugin For That presentationmarnafriedman
 
Ecomm wp2014
Ecomm wp2014Ecomm wp2014
Ecomm wp2014Tom Nora
 
Stop Creating Data For Sake of Creating Data
Stop Creating Data For Sake of Creating DataStop Creating Data For Sake of Creating Data
Stop Creating Data For Sake of Creating DataGeorge Ortiz
 
A house with no walls: Creating a site structure for the future
A house with no walls: Creating a site structure for the futureA house with no walls: Creating a site structure for the future
A house with no walls: Creating a site structure for the futureGizmo Creative Factory, Inc.
 
WordPress per giornalisti freelance
WordPress per giornalisti freelance  WordPress per giornalisti freelance
WordPress per giornalisti freelance GGDBologna
 
Scoping and Estimating WordPress Projects as an Agency
Scoping and Estimating WordPress Projects as an AgencyScoping and Estimating WordPress Projects as an Agency
Scoping and Estimating WordPress Projects as an AgencyKara Hansen
 
Using Theme Frameworks for rapid development and sustainability
Using Theme Frameworks for rapid development and sustainabilityUsing Theme Frameworks for rapid development and sustainability
Using Theme Frameworks for rapid development and sustainabilityJoel Norris
 
WordCamp Milwaukee 2012 - Contributing to Open Source
WordCamp Milwaukee 2012 - Contributing to Open SourceWordCamp Milwaukee 2012 - Contributing to Open Source
WordCamp Milwaukee 2012 - Contributing to Open Sourcejclermont
 
Less js-&-wp
Less js-&-wpLess js-&-wp
Less js-&-wprfair404
 
WordPress for Beginners
WordPress for BeginnersWordPress for Beginners
WordPress for BeginnersBrad Williams
 
Rapid application development for WordPress using AWF
Rapid application development for WordPress using AWFRapid application development for WordPress using AWF
Rapid application development for WordPress using AWFTim Plummer
 
WCBHAM: Running your Freelance Business
WCBHAM: Running your Freelance BusinessWCBHAM: Running your Freelance Business
WCBHAM: Running your Freelance Businesskellyhousholder
 

Viewers also liked (20)

Creating and Managing Content on Your WordPress Site
Creating and Managing Content on Your WordPress SiteCreating and Managing Content on Your WordPress Site
Creating and Managing Content on Your WordPress Site
 
Website Performance, Engagement, and Leads
Website Performance, Engagement, and LeadsWebsite Performance, Engagement, and Leads
Website Performance, Engagement, and Leads
 
Building Your First Widget
Building Your First WidgetBuilding Your First Widget
Building Your First Widget
 
THE WORDPRESS DASHBOARD DEMYSTIFIED
THE WORDPRESS DASHBOARD DEMYSTIFIEDTHE WORDPRESS DASHBOARD DEMYSTIFIED
THE WORDPRESS DASHBOARD DEMYSTIFIED
 
WordPress 101 - Foundation Friday at WordCamp Chicago 2014 #WCChi
WordPress 101 - Foundation Friday at WordCamp Chicago 2014 #WCChiWordPress 101 - Foundation Friday at WordCamp Chicago 2014 #WCChi
WordPress 101 - Foundation Friday at WordCamp Chicago 2014 #WCChi
 
Acessibilidade Web agora é obrigatória. Estamos preparados?
Acessibilidade Web agora é obrigatória. Estamos preparados?Acessibilidade Web agora é obrigatória. Estamos preparados?
Acessibilidade Web agora é obrigatória. Estamos preparados?
 
A Plugin For That presentation
A Plugin For That presentationA Plugin For That presentation
A Plugin For That presentation
 
Ecomm wp2014
Ecomm wp2014Ecomm wp2014
Ecomm wp2014
 
Stop Creating Data For Sake of Creating Data
Stop Creating Data For Sake of Creating DataStop Creating Data For Sake of Creating Data
Stop Creating Data For Sake of Creating Data
 
Dev Work Flow
Dev Work FlowDev Work Flow
Dev Work Flow
 
A house with no walls: Creating a site structure for the future
A house with no walls: Creating a site structure for the futureA house with no walls: Creating a site structure for the future
A house with no walls: Creating a site structure for the future
 
WordPress per giornalisti freelance
WordPress per giornalisti freelance  WordPress per giornalisti freelance
WordPress per giornalisti freelance
 
WordCamp 2015
WordCamp 2015WordCamp 2015
WordCamp 2015
 
Scoping and Estimating WordPress Projects as an Agency
Scoping and Estimating WordPress Projects as an AgencyScoping and Estimating WordPress Projects as an Agency
Scoping and Estimating WordPress Projects as an Agency
 
Using Theme Frameworks for rapid development and sustainability
Using Theme Frameworks for rapid development and sustainabilityUsing Theme Frameworks for rapid development and sustainability
Using Theme Frameworks for rapid development and sustainability
 
WordCamp Milwaukee 2012 - Contributing to Open Source
WordCamp Milwaukee 2012 - Contributing to Open SourceWordCamp Milwaukee 2012 - Contributing to Open Source
WordCamp Milwaukee 2012 - Contributing to Open Source
 
Less js-&-wp
Less js-&-wpLess js-&-wp
Less js-&-wp
 
WordPress for Beginners
WordPress for BeginnersWordPress for Beginners
WordPress for Beginners
 
Rapid application development for WordPress using AWF
Rapid application development for WordPress using AWFRapid application development for WordPress using AWF
Rapid application development for WordPress using AWF
 
WCBHAM: Running your Freelance Business
WCBHAM: Running your Freelance BusinessWCBHAM: Running your Freelance Business
WCBHAM: Running your Freelance Business
 

Similar to WordPress as a CMS

So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 Evan Mullins
 
Introduction to WordPress Theme Development
Introduction to WordPress Theme DevelopmentIntroduction to WordPress Theme Development
Introduction to WordPress Theme DevelopmentSitdhibong Laokok
 
From PSD to WordPress Theme: Bringing designs to life
From PSD to WordPress Theme: Bringing designs to lifeFrom PSD to WordPress Theme: Bringing designs to life
From PSD to WordPress Theme: Bringing designs to lifeDerek Christensen
 
From WordPress With Love
From WordPress With LoveFrom WordPress With Love
From WordPress With LoveUp2 Technology
 
WordPress Customization and Security
WordPress Customization and SecurityWordPress Customization and Security
WordPress Customization and SecurityJoe Casabona
 
Adobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + FireworksAdobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + FireworksNathan Smith
 
Extending & Scaling | Dallas PHP
Extending & Scaling | Dallas PHPExtending & Scaling | Dallas PHP
Extending & Scaling | Dallas PHPrandyhoyt
 
NEPA BlogCon 2013 - WordPress Customization & Security
NEPA BlogCon 2013 - WordPress Customization & SecurityNEPA BlogCon 2013 - WordPress Customization & Security
NEPA BlogCon 2013 - WordPress Customization & SecurityMichelle Davies (Hryvnak)
 
Highly Maintainable, Efficient, and Optimized CSS
Highly Maintainable, Efficient, and Optimized CSSHighly Maintainable, Efficient, and Optimized CSS
Highly Maintainable, Efficient, and Optimized CSSZoe Gillenwater
 
Wordpress beyond blogging
Wordpress beyond bloggingWordpress beyond blogging
Wordpress beyond bloggingJulien Minguely
 
Web page design (1)
Web page design (1)Web page design (1)
Web page design (1)Sonika koul
 
Wordpress website development
Wordpress website developmentWordpress website development
Wordpress website developmentJohn Faust
 
Modern Front-End Development
Modern Front-End DevelopmentModern Front-End Development
Modern Front-End Developmentmwrather
 

Similar to WordPress as a CMS (20)

The WordPress Way
The WordPress WayThe WordPress Way
The WordPress Way
 
Death of a Themer
Death of a ThemerDeath of a Themer
Death of a Themer
 
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
 
Introduction to WordPress Theme Development
Introduction to WordPress Theme DevelopmentIntroduction to WordPress Theme Development
Introduction to WordPress Theme Development
 
From PSD to WordPress Theme: Bringing designs to life
From PSD to WordPress Theme: Bringing designs to lifeFrom PSD to WordPress Theme: Bringing designs to life
From PSD to WordPress Theme: Bringing designs to life
 
From WordPress With Love
From WordPress With LoveFrom WordPress With Love
From WordPress With Love
 
WordPress Customization and Security
WordPress Customization and SecurityWordPress Customization and Security
WordPress Customization and Security
 
Adobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + FireworksAdobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + Fireworks
 
Extending & Scaling | Dallas PHP
Extending & Scaling | Dallas PHPExtending & Scaling | Dallas PHP
Extending & Scaling | Dallas PHP
 
NEPA BlogCon 2013 - WordPress Customization & Security
NEPA BlogCon 2013 - WordPress Customization & SecurityNEPA BlogCon 2013 - WordPress Customization & Security
NEPA BlogCon 2013 - WordPress Customization & Security
 
Highly Maintainable, Efficient, and Optimized CSS
Highly Maintainable, Efficient, and Optimized CSSHighly Maintainable, Efficient, and Optimized CSS
Highly Maintainable, Efficient, and Optimized CSS
 
Wordpress beyond blogging
Wordpress beyond bloggingWordpress beyond blogging
Wordpress beyond blogging
 
Web page design (1)
Web page design (1)Web page design (1)
Web page design (1)
 
CSS3
CSS3CSS3
CSS3
 
Wordpress website development
Wordpress website developmentWordpress website development
Wordpress website development
 
Modern Front-End Development
Modern Front-End DevelopmentModern Front-End Development
Modern Front-End Development
 
Cms
CmsCms
Cms
 
Cms
CmsCms
Cms
 
Faster WordPress Workflows
Faster WordPress WorkflowsFaster WordPress Workflows
Faster WordPress Workflows
 
Boost and SEO
Boost and SEOBoost and SEO
Boost and SEO
 

Recently uploaded

8377877756 Full Enjoy @24/7 Call Girls in Nirman Vihar Delhi NCR
8377877756 Full Enjoy @24/7 Call Girls in Nirman Vihar Delhi NCR8377877756 Full Enjoy @24/7 Call Girls in Nirman Vihar Delhi NCR
8377877756 Full Enjoy @24/7 Call Girls in Nirman Vihar Delhi NCRdollysharma2066
 
Call Girls Satellite 7397865700 Ridhima Hire Me Full Night
Call Girls Satellite 7397865700 Ridhima Hire Me Full NightCall Girls Satellite 7397865700 Ridhima Hire Me Full Night
Call Girls Satellite 7397865700 Ridhima Hire Me Full Nightssuser7cb4ff
 
Introduction-to-Canva-and-Graphic-Design-Basics.pptx
Introduction-to-Canva-and-Graphic-Design-Basics.pptxIntroduction-to-Canva-and-Graphic-Design-Basics.pptx
Introduction-to-Canva-and-Graphic-Design-Basics.pptxnewslab143
 
How to Be Famous in your Field just visit our Site
How to Be Famous in your Field just visit our SiteHow to Be Famous in your Field just visit our Site
How to Be Famous in your Field just visit our Sitegalleryaagency
 
办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一
办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一
办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一Fi L
 
FiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdfFiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdfShivakumar Viswanathan
 
shot list for my tv series two steps back
shot list for my tv series two steps backshot list for my tv series two steps back
shot list for my tv series two steps back17lcow074
 
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degreeyuu sss
 
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档208367051
 
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,Aginakm1
 
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...katerynaivanenko1
 
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一Fi sss
 
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130Suhani Kapoor
 
Untitled presedddddddddddddddddntation (1).pptx
Untitled presedddddddddddddddddntation (1).pptxUntitled presedddddddddddddddddntation (1).pptx
Untitled presedddddddddddddddddntation (1).pptxmapanig881
 
在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证
在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证
在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证nhjeo1gg
 
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`dajasot375
 
Architecture case study India Habitat Centre, Delhi.pdf
Architecture case study India Habitat Centre, Delhi.pdfArchitecture case study India Habitat Centre, Delhi.pdf
Architecture case study India Habitat Centre, Delhi.pdfSumit Lathwal
 
Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Rndexperts
 
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)jennyeacort
 
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一lvtagr7
 

Recently uploaded (20)

8377877756 Full Enjoy @24/7 Call Girls in Nirman Vihar Delhi NCR
8377877756 Full Enjoy @24/7 Call Girls in Nirman Vihar Delhi NCR8377877756 Full Enjoy @24/7 Call Girls in Nirman Vihar Delhi NCR
8377877756 Full Enjoy @24/7 Call Girls in Nirman Vihar Delhi NCR
 
Call Girls Satellite 7397865700 Ridhima Hire Me Full Night
Call Girls Satellite 7397865700 Ridhima Hire Me Full NightCall Girls Satellite 7397865700 Ridhima Hire Me Full Night
Call Girls Satellite 7397865700 Ridhima Hire Me Full Night
 
Introduction-to-Canva-and-Graphic-Design-Basics.pptx
Introduction-to-Canva-and-Graphic-Design-Basics.pptxIntroduction-to-Canva-and-Graphic-Design-Basics.pptx
Introduction-to-Canva-and-Graphic-Design-Basics.pptx
 
How to Be Famous in your Field just visit our Site
How to Be Famous in your Field just visit our SiteHow to Be Famous in your Field just visit our Site
How to Be Famous in your Field just visit our Site
 
办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一
办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一
办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一
 
FiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdfFiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdf
 
shot list for my tv series two steps back
shot list for my tv series two steps backshot list for my tv series two steps back
shot list for my tv series two steps back
 
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
 
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
 
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
 
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
 
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
 
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
 
Untitled presedddddddddddddddddntation (1).pptx
Untitled presedddddddddddddddddntation (1).pptxUntitled presedddddddddddddddddntation (1).pptx
Untitled presedddddddddddddddddntation (1).pptx
 
在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证
在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证
在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证
 
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`
 
Architecture case study India Habitat Centre, Delhi.pdf
Architecture case study India Habitat Centre, Delhi.pdfArchitecture case study India Habitat Centre, Delhi.pdf
Architecture case study India Habitat Centre, Delhi.pdf
 
Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025
 
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)
 
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一
 

WordPress as a CMS

  • 1. WordPress as a CMS Justin Sisley justin.sisley@gmail.com www.justinsisley.com Matthew Vaccaro mattyvac@gmail.com www.matthewvaccaro.com “Make an enterprise level CMS out of WordPress?”
  • 2. Slides! http://www.slideshare.net/Mattyvac Wordpress as a CMS - http://www.slideshare.net/Mattyvac
  • 3. Wiki Says… Wordpress as a CMS
  • 4. The Definition of a CMS A web content management system (WCMS)[1] is a software system that provides website authoring, collaboration, and administration tools designed to allow users with little knowledge of web programming languages or markup languages to create and manage website content with relative ease. - Wikipedia Wordpress as a CMS
  • 5. A Brief History Wordpress as a CMS
  • 6. …a [very] brief history. “WordPress was born out of a desire for an elegant, well-architectured personal publishing system built on PHP and MySQL and licensed under the GPLv2 (or later). It is the official successor of b2/cafelog. WordPress is fresh software, but its roots and development go back to 2001. It is a mature and stable product. We hope by focusing on user experience and web standards we can create a tool different from anything else out there.” – wordpress.org/about/ Serious Blogging Serious Forking Serious CMSing Wordpress as a CMS
  • 7. Why You’re Here WordPress as a CMS
  • 8. …and why we’re here. WordPress today • Robust, customizable platform that is very CMSish • Allows the use of many core CMS principles such as media re-use and workflow WordPress is not just a blog platform... • ...and is not just a convenient CMS for small client projects, it’s much more! • Some may be doing this already: – Network of client sites for ease of updating – Network of blogs under one media company • ….but what about HUGE single sites!? Wordpress as a CMS
  • 9. “You’re gonna need a bigger CMS” –Brody Wordpress as a CMS
  • 10. Why We Chose WordPress What we were up against: • Enterprise systems based on .NET and ColdFusion • Ektron, SiteCore, etc. • ‘Enterprise mentality’ • Enterprise What we needed: • Dynamically driven (database) content • Ability for multiple users to update the website • Easier integration of social media and API’s – Brightcove, Flickr, etc. • Better navigation and information architecture • More modern responsive design • Integrated search and knowledge base Wordpress as a CMS
  • 11. “Say ‘enterprise’ again. Say ‘enterprise’ again, I dare you, I double dare you.” -Jules Wordpress as a CMS
  • 12. Why We Chose WordPress What we hoped to achieve: • Stronger engagement of users • Better, more timely, communication of information internally and externally • Reflects the ‘21st Century’ college motto • Better adapts to users needs • More comprehensive metrics and analytics collection Wordpress as a CMS
  • 13. Why We Chose WordPress – Cost – Pre-existing knowledge, no consulting needed like proprietary systems – Positive outlook for WP as a platform – Massive community Wordpress as a CMS
  • 14. How We’re Using WordPress Wordpress as a CMS
  • 15. How We’re Using WordPress as a CMS College of Medicine CMS design and development process • Desired functionality brainstorming – What features already exist – What features did we have to create for ourselves – Using third-party plugins vs. writing our own • Use as few third party plugins as possible (Less than 5) • Multisite vs. single site considerations – Get_blog_list(); and switch_to_blog(); is bad! (Sort of, but let us explain…) • Get_blog_(); is deprecated – and horrible – Network search, or anything network wide • User roles, permissions and capabilities – Content Editor -> Content Manager -> Approver/Publisher – Remove options from users on a per role or per site basis (RoleScoper Plugin) • JavaScript – Ajax – Script management – Closures – Use only what you need Wordpress as a CMS
  • 16. How We’re Using WordPress as a CMS Evolution of design • ‘Web 1.0’ to ‘Web 2.0’ • Static to dynamic • Designing ‘for the group’ Wordpress as a CMS
  • 17. How We’re Using WordPress as a CMS TA-DA! Custom wp_list_pages functions, jQuery audience panel Custom fields, custom post type events calendar Wordpress as a CMS
  • 18. How We’re Using WordPress as a CMS Evolution of design /*** @group general ***/ • Theming and templates ::-moz-selection { background-color: #9bd2f1; – Not every page needs a template color: #fff; – Use PHP to your advantage when creating } templates /*** @group headings ***/ • Consolidate templates with statements h1 a, h2 a, h3 a { -webkit-text-stroke: 1px transparent; } Design Considerations /*** @group header ***/ • Combine and minimize CSS and jQuery header { • Use markers in CSS (@group) overflow: auto; margin-bottom: 10px; • Includes make life easier } – @import for CSS /*** @group universal bar style ***/ – <?php require_once ('includes/site-head'); ?> .grey-bar { border: 1px solid #ccc; – <?php get_template_part('includes/site-head'); font-size: 14px; ?> text-shadow: 0px 1px 0px #FFF; } /*** @group navigation - top ***/ ul#top-navigation { overflow: hidden; width: 955px; z-index: 19999; margin: 0 auto; clear: both; } Wordpress as a CMS
  • 19. How We’re Using WordPress as a CMS Make use of the WordPress functions! • …The ones above • wp_list_pages(); (wp_get_pages(); also rocks!) • get_queried_object(); • get_top_ancestor(); …and TONS more <?php $bodyClass = get_body_class(); $currPageID = get_the_ID(); $currPageActive = get_top_ancestor($currPageID); $activeClass = 'activeNav'; if (in_array("root-parent-id-".$currPageActive, $bodyClass) && $currPageActive == 8) { $aboutActive = $activeClass; }elseif(in_array("root-parent-id-".$currPageActive, $bodyClass) && $currPageActive == 12) { $acadActive = $activeClass; } ?> <ul id="sideNavList"> <li class="homeBackground"><a href="<?php bloginfo('url'); ?>" class="homeLink">Return Home</a></li> <li><a href="<?php echo get_permalink( 8 ); ?>" class="<?php echo $aboutActive; ?>">About</a> <ul class="children <?php echo $aboutActive; ?>"> <?php side_nav_list_pages( 8 ); //custom function ?> </ul> </li> </ul> Wordpress as a CMS
  • 20. How We’re Using WordPress as a CMS Security • Nonces • Mysql_real_escape_string • Theme security = plugin security! – functions.php is just as important as a plugin – Escaping non-plugin and non-functions.php code when using code within themes • Awareness is key <?php $rss = fetch_feed('http://www.external-url.com/feed/?post_type=news'); if (!is_wp_error( $rss ) ) : $maxitems = $rss->get_item_quantity(7); $rss_items = $rss->get_items(0, $maxitems); endif; ?> <ul> <?php if ($maxitems == 0 ) echo $rss->get_error_message(); else foreach ( $rss_items as $item ) : ?> <li> <a href='<?php echo esc_url( $item->get_permalink() ); ?>' title='<?php echo 'Posted '.$item->get_date('j F Y | g:i a'); ?>'> <?php echo esc_html( $item->get_title() ); ?></a> </li> <?php endforeach; ?> </ul> Wordpress as a CMS
  • 21. How We’re Using WordPress as a CMS Backups • CRON is your friend! Multi-server deployment • Separate environments (development, staging, production) • DB Syncing – Production to development every night (CRON) Revisions & Version Control • Capistrano, git, etc. • SVN is getting older; distributed is getting newer. Wordpress as a CMS
  • 22. How We’re Using WordPress as a CMS Content organization strategies • Custom post types – Cutting the ‘blog’ out of WordPress • Custom fields • Naming documents (meta data) Authoring and publishing workflow • Revisions and review process • Push users to create and update content Wordpress as a CMS
  • 23. How We’re Using WordPress as a CMS Upkeep & Maintenance • Email alert system ‘page out of date’ • Queries • Remove old revisions and empty the trash DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision' Wordpress as a CMS
  • 24. TO THE FUTURE! Wordpress as a CMS
  • 25. But what about…the future, man? • Exponential content growth – When someone can, they will – Old information gets archived, new information is created • Cosmetic progression – Keeping up with the cool kids • Workflow • Maintenance Wordpress as a CMS