WordPress as a CMS

  • 6,431 views
Uploaded on

WordPress as a CMS. Presentation by Matthew Vaccaro and Justin Sisley using the UCF College of Medicine as an example for how to use WordPress as a CMS.

WordPress as a CMS. Presentation by Matthew Vaccaro and Justin Sisley using the UCF College of Medicine as an example for how to use WordPress as a CMS.

More in: Design , Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
6,431
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
1
Likes
10

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. WordPress as a CMSJustin Sisleyjustin.sisley@gmail.comwww.justinsisley.comMatthew Vaccaromattyvac@gmail.comwww.matthewvaccaro.com“Make an enterpriselevel CMS out ofWordPress?”
  • 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 CMSA web content management system (WCMS)[1] is asoftware system thatprovides website authoring, collaboration, andadministration tools designed to allow users with littleknowledge of web programming languages or markuplanguages to create and manage website content withrelative 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 workflowWordPress 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 gonnaneed a biggerCMS” –Brody Wordpress as a CMS
  • 10. Why We Chose WordPressWhat we were up against:• Enterprise systems based on .NET and ColdFusion• Ektron, SiteCore, etc.• ‘Enterprise mentality’• EnterpriseWhat 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, Idouble dare you.”-Jules Wordpress as a CMS
  • 12. Why We Chose WordPressWhat 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 metricsand 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 UsingWordPress Wordpress as a CMS
  • 15. How We’re Using WordPress as a CMSCollege 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 CMSEvolution 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 CMSTA-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 CMSEvolution 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 CMSMake 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 CMSSecurity• 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 CMSBackups• 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 CMSContent 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 CMSUpkeep & 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