Successfully reported this slideshow.

The WordPress University

23,758 views

Published on

Published in: Technology, Business
  • Be the first to comment

The WordPress University

  1. 1. Shelley Keith and Stephanie Leary The WordPress University
  2. 2. New book coming Fall 2014! Content Strategy for WordPress demonstrates how to build structured content for higher ed sites. Sign up to be notified when it’s out: http://sleary.me/list
  3. 3. Who we are Shelley (@sk140) Lone web geek on a campus of ~3500 students and 400 faculty/staff. HEWEB program committee since 2006. Chaired regional HEWEB 2010 & 2011 events. Launched WPMU in May 2009. Alone. Stephanie (@sleary) Lone web geek in an office of 6 (+45 student tutors) serving 50,000 students. HEWEB program committee, 2005-2009. Launched single WP sites in 2008; consolidated network August 2010. 17 plugins on Extend.
  4. 4. We made this
  5. 5. Why WordPress?
  6. 6. Why WordPress? Shelley, 2005 • Zero dedicated web staff • No budget • 16,000 html files • Rampant duplication • Headers and navigation files (template) • Images • 4700 broken links • No search • No site map • No analytics • No remote access • No process • No hope • MS FrontPage
  7. 7. Why WordPress? Stephanie, 2008 • Creaky Mambo site precariously upgraded to Joomla 1.15 • 1.5 wasn't out yet, beta broke our theme and all our plugins • Confusing divisions of content in admin screens • Comments required plugin, [mxc] code inserted into content
  8. 8. Why WordPress? Stephanie, 2008 • No RSS feeds. My predecessor had a desktop app to generate them by hand. • No podcasting. Uploaded MP3s to FTP server, inserted links, did RSS by hand. • Terrible search... also plugin-based. • No budget.
  9. 9. The Drupal Detour (a 17-month mistake) • 6 was out, but plugins hadn't been updated. • Emulating WP's simple editing UI -- rich text editor, media upload/insert -- required 3 plugins meant to work together. They didn't. • Post editing UI overwhelmed by taxonomies and podcasting module.
  10. 10. The Drupal Detour (a 17-month mistake) • Clean URL module flaky, self- contradictory; couldn't stabilize. • "View" creation required master's degree in HCI. • Couldn't create multiple blogs without tying them to users. • Recommended upgrade process documented at 18 hours.
  11. 11. Advantages • UI for posts and pages: EASY • Scheduling: EASY • Clean URLs • feeds for everything (feed table handout) • One-click upgrades • widgets and menus • Free in the repository: 16k plugins & 1,400 themes
  12. 12. Weaknesses • Lacks native reusable content & network- wide internal linking system • Requires caching plugin, not included, to optimize speed • Critical plugins can fail as WP advances • Disjointed and incomplete advanced documentation • Heavy use of pages can be problematic • Lacks robust native workflow
  13. 13. Multisite and Child Themes • Setup options • site.domain.edu • domain.edu/site • Theme Frameworks • Genesis • Thematic • Headway • Whiteboard
  14. 14. Compared to other CMSs • Fast development cycles • WP 3.0 to 3.1: 8 months • Drupal 6.0 to 7.0: 3 years • Joomla 1.5 to 1.6: 3 years • Cohesive, disciplined core developer group • UI focused on ease of use
  15. 15. Compared to other CMSs • Core features work very well • Comments • RSS and Atom feeds • Permalinks • Nonessential features relegated to plugins
  16. 16. Making the Case for WordPress
  17. 17. LAMP vs. IIS 7 • mod_rewrite • .htaccess • URL Rewrite 1.1 • PHP running as FastCGI
  18. 18. Open Source vs. Commercial Open Source Low or no initial budget outlay Premium support options available Variety of custom development options -------------------------------- Shelley launched in 2009 with $2k Commercial High startup costs Enterprise support contracts available Often contracted to the CMS company for customization ------------------------------- Texas 2yr launching OmniUpdate this year:
  19. 19. WordPress Tour
  20. 20. 5 Minute Installation! Unless your campus infrastructure sucks.
  21. 21. Basic Installation • Gather database information: name, username, password • Unzip files to server • View in browser • Fill in values • Pass Go, collect $200
  22. 22. Network Setup • Decide: subdirectories or subdomains? • Wildcard DNS is not required if you are not letting people sign up for new sites on their own. • Users already in the system can be added to the new site. • http://codex.wordpress.org/Create_A_N etwork
  23. 23. Domain Mapping • snoopy.wordpress.com -> snoopycorp.com • snoopy.webserver-1.school.edu -> snoopy.school.edu • WordPress MU Domain Mapping
  24. 24. Migrating Single Sites to Networks • Import from single WP install or other supported CMS • Import from RSS • HTML Import
  25. 25. Troubleshooting • define('WP_DEBUG', true); • Debug Bar plugin • View hooks • See Nacin on debugging WordPress
  26. 26. Themes
  27. 27. Basic Theme Setup • styles.css and index.php • More specific files for each archive type: • Single post, page, or custom post type • Category and tag archives; custom taxonomies • Date-based archives (day, month, year) • functions.php turns on feature support; works like mini-plugin • header.php, footer.php, sidebar.php -- basic includes • comments.php
  28. 28. How this comes together... • You click a category link on a post. • Based on your permalink structure, WordPress knows you are requesting a list of posts in that category. It queries the database. • It finds 53 posts. Your Reading setting says 20 per page. • WordPress assembles the first 20 posts' data, plus links to two more pages.
  29. 29. Which template? • Which theme file is used? • category-slug.php • category-id.php • category.php • archive.php • index.php • See Show Template plugin
  30. 30. More Advanced Themes Page templates Multiple sidebars Widget areas Using get_template_part() and specialized loop files Theme options Editor styles Tips: handling subcategories without tons of files conditional sidebars
  31. 31. Child Themes /* Theme Name: UWC 2011 Description: Child theme for the Writing Center Version: 1.0 Author: Stephanie Leary Author URI: http://uwc.tamu.edu Template: US2011 */ @import url(../US2011/style.css); /* Overrides: */
  32. 32. Other Child Theme Files • If template is present in child theme, use instead of parent file • BOTH functions.php files will be used
  33. 33. Theme Frameworks • A complete theme with many options • Page templates • Specific archives • Many widget areas • SEO features • custom fields for keywords • title filters • Genesis Google snippet preview • Can be overridden by child themes
  34. 34. Building a Theme 1.Craft your HTML structure 2.Drop in WordPress template tags • the_title() • the_content() • etc. 3.Move common elements into include templates • Header • Footer • Sidebars • Search form
  35. 35. Building a Theme 4.Create widget areas 5.Handle comments and comment forms 6.Don't forget 404.php!
  36. 36. Creating Your Own Widgets • WP_Widget class • constructor • specify widget title & make it go • widget • generate output • update • handle form input, save options • form • display form fields • See /wp-includes/default-widgets.php for examples
  37. 37. Theme Q&A
  38. 38. Break
  39. 39. Performance and Security
  40. 40. Backing Up • WP DB Backup (single sites, database only) • Backup Buddy (network, database and files, $$)
  41. 41. Upgrading • Do it! (But back up first.) • If the FTP Settings screen appears, add to wp- config.php: • //Force direct upgrade/install without making Apache the owner define( 'FS_METHOD', 'direct' ); define( 'FS_CHMOD_DIR', 0775 ); define( 'FS_CHMOD_FILE', 0664 ); • (Assuming you and Apache are in the same group) • Upgrading via SSH
  42. 42. Permalink Settings • For best performance, use the built-in options • Verbose rules to be fixed in 3.3 (Thanksgiving-ish) • /%category%/%postname%/
  43. 43. Caching • WP Super Cache • W3 Total Cache • Hyper Cache • Batcache
  44. 44. Security Precautions • Make sure WP files are group-writeable, not world • Set permalinks and caching, then make .htaccess not writeable • No admin user • Change database table prefix from wp_
  45. 45. Security Precautions • Move wp-config.php up one directory • Prevent bogus login attempts with Login Lockdown • Run WP Security Scan and Exploit Scanner • Monitor filesystem with File Monitor Plus
  46. 46. Security Plugins • Login Lockdown or Limit Login Attempts • Force SSL • WordPress Firewall • WP Security Scan • Exploit Scanner • File Monitor Plus • Audit Trail
  47. 47. Evaluating Themes and Plugins • Search code for: • base64() • eval() • include(../../w p-config.php) • Does it use updated libraries? • Are wp_head() and wp_footer() missing? • Does it insert links you can’t remove? • Does it pester you for commercial upgrades?
  48. 48. Writing Secure Themes and Plugins • Use the Settings API • Check user capabilities • Check nonces and referrers • Validate user input • Escape output • Mark Jaquith on WP security • Professional WordPress Plugin Development
  49. 49. More With WordPress
  50. 50. BuddyPress Social Network Layer
  51. 51. BuddyPress • Good Uses: • Campus wide social network • Company-wide internal communication tool • Niche social network for interest topic • Benefits • Own the content • Long-term relationship maintenance • Timely integration and removal of popular
  52. 52. BuddyPress Plugins • Welcome Pack • Achievements • BuddyPress Share It • Group Suggest Widget • Simple Google Map Plugin
  53. 53. CollabPress Task Management for WordPress
  54. 54. CollabPress
  55. 55. eCommerce Plugins $$
  56. 56. ScholarPress A Learning Management System for BuddyPress
  57. 57. Content Audit "Now we’re talking real CMS capability!"
  58. 58. Custom Fields, Taxonomies, and Post Types
  59. 59. Custom Fields • Adding more information to posts. • Default input vs. custom meta boxes • Examples: content audit notes, professor contact info
  60. 60. Taxonomies • Extra sets of categories and tags • People • Movie DB • Taxonomy Tools • Scribu's Query Multiple Taxonomies widget • Otto on complex taxonomy queries
  61. 61. Custom Post Types & Taxonomies • Default post types: • Posts, Pages • Attachments • Revisions • Menu Items • Potential uses • Course descriptions • Media database • Seminar series • Employee Directory • Default Taxonomies • Categories • Post Tags • Menus • Link Categories • Potential Uses • Video • People
  62. 62. Post Types • Things that are not posts OR pages: • products • books • courses • Anything that needs to be cataloged and displayed separately. • Course Post Type: sample plugin code • Custom fields: professor name, email, phone; course code • Taxonomies: college, department • Create your own: register_post_type()
  63. 63. Custom Post Type Resources • Custom Post Types in WordPress • Custom Post Types in WordPress 3.0 • Custom Post Types and Custom Taxonomies • Introducing WordPress 3 Custom Taxonomies • Custom Post Types and Taxonomies in WordPress
  64. 64. The WordPress Community
  65. 65. Development Philosophy • 2.9, 3.0, 3.1, 3.2, 3.3 are all major releases. • 3.2.1 is a bugfix and security update. • Old releases do not get security updates. • Core developers set feature agenda for major releases based on Trac tickets, known problems, and user surveys.
  66. 66. Development Philosophy • Development schedule kept on wpdevel.wordpress.com. • Meetings once a week in #wordpress- dev. • If it can be covered by a plugin, let it. Core is for features most people need, or frameworks developers can build on. • If you want it fixed sooner, patch it yourself.
  67. 67. Documentation • Codex • Forum • WP StackExchange • Trac • Developers’ blogs
  68. 68. Support • Contract available from Automattic (core creators) • Third party vendors such as MUSupport.net. • Active user forums on www.wordpress.org, wpbeginner provides some paid support options • Individual plugin & theme developers • Groups on LinkedIn, huge Twitter population
  69. 69. Discussion IRC channels • #wordpress • #wordpress-dev • #buddypress • #bbpress Listserves • WP-Hackers • WP-Edu wp-edu.org Development blogs • wpdevel • make/ui • make/themes • make/accessibility • wppolyglots
  70. 70. News Events WordCamps • San Francisco • New York • local: central.wordcamp.org • WP Candy • Planet WordPress • wpMail.me • wpBeginner • wpTuts
  71. 71. Q&A
  72. 72. Demos? • Network administration? • Plugins • BP • Collab • Scholar • Edit Flow and/or Editorial Calendar • Content Audit • HTML Import, if there's interest

×