You are previewing WordPress® Bible.
O'Reilly logo
WordPress® Bible

Book Description

Install WordPress and go beyond blogging

WordPress is so flexible that developers are now tapping it to create robust applications for content, contact, and e-mail management. Whether you're a casual blogger or programming pro, this comprehensive guide covers WordPress from the basics through advanced application development. Learn how to use custom plugins and themes, retrieve data, maintain security, use social media, and modify your blog without changing any core code. You'll even get to know the ecosystem of products that surrounds this popular, open-source tool.

  • Enhance your blog's findability in the search engines and beyond

  • Discover hooks and leverage the WordPress event-driven programming interface

  • Create WordPress widgets in only a few minutes

  • Explore alternate uses of WordPress

  • Enhance your blog with WordPress MU

  • Ensure your plugins maintain future compatibility

  • Create highly customizable and dynamic themes using template tags

  • Learn best security practices as a user and developer

Companion Web Site

Visit www.wiley.com/go/wordpressbible for all of the author's example files from the book.

Install, secure, and maintain WordPress

Extend WordPress with plugins and themes

Enhance your blog with WordPress MU

Table of Contents

  1. Copyright
  2. Credits
  3. About the Author
    1. About the Technical Editor
  4. Foreword
  5. Preface
    1. WordPress Versioning
    2. Getting the Most Out of This Book
    3. Using the Margin Icons
  6. Acknowledgments
  7. 1. Getting Started with WordPress
    1. 1. Learning About WordPress
      1. 1.1. A Brief History of WordPress
        1. 1.1.1. The creation of WordPress
        2. 1.1.2. The WordPress ecosystem emerges
        3. 1.1.3. The future of WordPress
      2. 1.2. Leveraging the WordPress Community
        1. 1.2.1. Support
          1. 1.2.1.1. Support forums
          2. 1.2.1.2. The WordPress Codex
          3. 1.2.1.3. IRC
        2. 1.2.2. Development
          1. 1.2.2.1. Hackers mailing list
            1. 1.2.2.1.1. Testers mailing list
          2. 1.2.2.2. Trac
      3. 1.3. WordPress by the Numbers
      4. 1.4. 10 Things You Need to Know About WordPress
        1. 1.4.1. Speed up the back-end with Google Gears
        2. 1.4.2. Generate content with an offline editor
        3. 1.4.3. Benefit from built-in SEO features
        4. 1.4.4. Widgetize your blog for a unique experience
        5. 1.4.5. Install themes, plugins, and core upgrades automatically
        6. 1.4.6. Turn your blog into a social network
        7. 1.4.7. Extend WordPress with plugins
        8. 1.4.8. Provide context with the WordPress taxonomy
        9. 1.4.9. Import your blog from any platform
        10. 1.4.10. Take advantage of multiple feeds
      5. 1.5. Understanding Open Source and the General Public License
      6. 1.6. Summary
    2. 2. Installing and Configuring WordPress
      1. 2.1. System Requirements
      2. 2.2. Choosing a Web Server
        1. 2.2.1. Apache
        2. 2.2.2. Lighttpd
        3. 2.2.3. Litespeed
        4. 2.2.4. Nginx
        5. 2.2.5. Internet Information Services
        6. 2.2.6. Optional modules
          1. 2.2.6.1. Apache mod_rewrite
          2. 2.2.6.2. eAccelerator for PHP
            1. 2.2.6.2.1. APC for PHP
          3. 2.2.6.3. SSH2 module for PHP
          4. 2.2.6.4. FTP for PHP
      3. 2.3. Installing WordPress
        1. 2.3.1. Configuring the database
        2. 2.3.2. Uploading your files
      4. 2.4. Summary
    3. 3. WordPress, SEO, and Social Media Marketing
      1. 3.1. Understanding the Basics of Search Engine Optimization
        1. 3.1.1. Canonical URLs
          1. 3.1.1.1. Google searches
          2. 3.1.1.2. Google Webmaster Tools
            1. 3.1.1.2.1. Steps for setting up proper canonical URL redirection
        2. 3.1.2. The Meta tag boost
          1. 3.1.2.1. Meta keywords tag
            1. 3.1.2.1.1. Meta description tag
          2. 3.1.2.2. Title tag
        3. 3.1.3. The All in One SEO plugin
          1. 3.1.3.1. Home Title
          2. 3.1.3.2. Home Description
          3. 3.1.3.3. Home Keywords
          4. 3.1.3.4. Canonical URLs
          5. 3.1.3.5. Rewrite Titles
          6. 3.1.3.6. Title Formats
          7. 3.1.3.7. Use Categories for META Keywords
          8. 3.1.3.8. Dynamically Generate Keywords for Posts Page
          9. 3.1.3.9. Noindex Options
          10. 3.1.3.10. Autogenerate Descriptions
          11. 3.1.3.11. Additional Headers
      2. 3.2. Leveraging Social Networks to Extend Your Blog
        1. 3.2.1. Facebook
          1. 3.2.1.1. Facebook Photos for WordPress
          2. 3.2.1.2. WP-FacebookConnect
        2. 3.2.2. Twitter
          1. 3.2.2.1. Twitter Tools
          2. 3.2.2.2. TweetMeme
      3. 3.3. Summary
    4. 4. Finding Help in the WordPress Support System
      1. 4.1. Using the WordPress Codex
      2. 4.2. Staying in the Loop with Mailing Lists
        1. 4.2.1. wp-hackers
        2. 4.2.2. wp-testers
        3. 4.2.3. wp-docs
        4. 4.2.4. wp-pro
        5. 4.2.5. wp-xmlrpc
        6. 4.2.6. wp-polyglots
        7. 4.2.7. wp-svn
        8. 4.2.8. wp-trac
      3. 4.3. Finding Help in the WordPress Support Forums
        1. 4.3.1. Understanding the support forum layout
          1. 4.3.1.1. Installation
          2. 4.3.1.2. How To and Troubleshooting
          3. 4.3.1.3. Plugins and Hacks
          4. 4.3.1.4. WP-Advanced
          5. 4.3.1.5. Your WordPress
          6. 4.3.1.6. Miscellaneous
          7. 4.3.1.7. Requests and Feedback
          8. 4.3.1.8. Alpha/Beta
        2. 4.3.2. Posting in the support forums
      4. 4.4. Summary
  8. 2. Working with Plugins
    1. 5. Extending WordPress with Plugins
      1. 5.1. Understanding WordPress Hooks
        1. 5.1.1. The anatomy of a hook
        2. 5.1.2. Theme hooks
      2. 5.2. Writing Your Own Plugin
      3. 5.3. Extending the WordPress Admin
        1. 5.3.1. Creating an admin interface
        2. 5.3.2. Adding an admin panel to the WordPress Admin navigation menu
        3. 5.3.3. Creating unique nonces for plugin form security
        4. 5.3.4. Processing data and interacting with the database
        5. 5.3.5. Loading JavaScript libraries
          1. 5.3.5.1. Preparing JavaScript with wp_enqueue_script()
        6. 5.3.6. Creating new Dashboard widgets
      4. 5.4. Creating Events with Actions
      5. 5.5. Modifying Content with Filters
      6. 5.6. Using Multi-Argument Hooks
      7. 5.7. Localizing Plugins
        1. 5.7.1. Enabling plugin code for translation
        2. 5.7.2. Providing a textdomain for the plugin
        3. 5.7.3. Generating a POT file for translators
      8. 5.8. Summary
    2. 6. Widgetizing WordPress
      1. 6.1. Using Widgets in WordPress
      2. 6.2. Building Widgets with the Widget API
        1. 6.2.1. Building a new widget plugin
        2. 6.2.2. Creating a control interface for the plugin
        3. 6.2.3. Saving configuration data
        4. 6.2.4. Putting it all together
        5. 6.2.5. Replacing existing widgets
      3. 6.3. Widgetizing Your Theme
        1. 6.3.1. Declaring sidebars
        2. 6.3.2. Integrating widgetized sidebars in themes
      4. 6.4. Summary
    3. 7. Understanding the WordPress Database Class
      1. 7.1. Examining the Schema and Properties of the Database Class
        1. 7.1.1. The database properties
          1. 7.1.1.1. show_errors
          2. 7.1.1.2. suppress_errors
          3. 7.1.1.3. last_error
          4. 7.1.1.4. num_queries
          5. 7.1.1.5. last_query
          6. 7.1.1.6. col_info
          7. 7.1.1.7. queries
          8. 7.1.1.8. prefix
          9. 7.1.1.9. ready
          10. 7.1.1.10. posts
          11. 7.1.1.11. postmeta
          12. 7.1.1.12. users
          13. 7.1.1.13. usermeta
          14. 7.1.1.14. comments
          15. 7.1.1.15. commentmeta
          16. 7.1.1.16. links
          17. 7.1.1.17. options
          18. 7.1.1.18. terms
          19. 7.1.1.19. term_taxonomy
          20. 7.1.1.20. term_relationships
          21. 7.1.1.21. tables
          22. 7.1.1.22. field_types
          23. 7.1.1.23. charset
          24. 7.1.1.24. collate
          25. 7.1.1.25. real_escape
      2. 7.2. Adding Data to MySQL with WordPress
        1. 7.2.1. Inserting new data into MySQL
        2. 7.2.2. Updating data in MySQL safely
      3. 7.3. Retrieving Data from MySQL with WordPress
        1. 7.3.1. Retrieving a single value from a table
        2. 7.3.2. Retrieving a column of data
        3. 7.3.3. Retrieving a row of data
        4. 7.3.4. Retrieving a full data set
        5. 7.3.5. Performing other queries
      4. 7.4. Preventing SQL Injection
      5. 7.5. Summary
    4. 8. Dissecting the Loop and WP_Query
      1. 8.1. Defining the Loop
      2. 8.2. Wrangling the Loop with Plugins
        1. 8.2.1. Discovering query hooks
        2. 8.2.2. Altering the query with hooks
      3. 8.3. Developing Custom and Multiple Loops
        1. 8.3.1. Using query_posts() and rewind_posts()
        2. 8.3.2. Instantiating a new Loop with WP_Query
        3. 8.3.3. Using variables to alter the query
        4. 8.3.4. Examples of WP_Query in action
          1. 8.3.4.1. Featured stories
            1. 8.3.4.1.1. Future posts
            2. 8.3.4.1.2. Display only sticky posts
      4. 8.4. Using Loops Strategically
      5. 8.5. Summary
  9. 3. Working with Themes and Template Tags
    1. 9. Using Free or Premium Themes
      1. 9.1. Understanding the User Experience
        1. 9.1.1. Typography
        2. 9.1.2. White space
        3. 9.1.3. Fixed or fluid width
        4. 9.1.4. Sidebars
      2. 9.2. Finding and Implementing Free Themes
      3. 9.3. Finding and Implementing Premium Themes
      4. 9.4. Summary
    2. 10. Understanding the Template File Hierarchy
      1. 10.1. Looking at the Minimum Necessary Template Files
        1. 10.1.1. style.css
        2. 10.1.2. index.php
      2. 10.2. Understanding the Common Template Files
        1. 10.2.1. header.php
        2. 10.2.2. footer.php
        3. 10.2.3. sidebar.php
        4. 10.2.4. comments.php
        5. 10.2.5. single.php
        6. 10.2.6. archive.php
        7. 10.2.7. page.php
        8. 10.2.8. search.php
        9. 10.2.9. functions.php
        10. 10.2.10. screenshot.png
      3. 10.3. Enhancing the User Experience with Template Files
        1. 10.3.1. attachment.php
        2. 10.3.2. image.php, video.php, audio.php, and application.php
        3. 10.3.3. author.php
        4. 10.3.4. tag.php
        5. 10.3.5. tag-{slug}.php
        6. 10.3.6. category.php
        7. 10.3.7. category-{x}.php
        8. 10.3.8. date.php
        9. 10.3.9. year.php, month.php, day.php
        10. 10.3.10. home.php
        11. 10.3.11. 404.php
      4. 10.4. Developing Custom Template Files
      5. 10.5. Summary
    3. 11. Adding JavaScript and CSS to Themes
      1. 11.1. Examining the jQuery and Prototype Frameworks
        1. 11.1.1. jQuery
        2. 11.1.2. Prototype
        3. 11.1.3. Comparing the frameworks
      2. 11.2. Leveraging WordPress' JavaScript Libraries
        1. 11.2.1. Prototype: script.aculo.us
        2. 11.2.2. Prototype: TinyMCE
        3. 11.2.3. jQuery: Autosave
        4. 11.2.4. jQuery: hoverIntent
        5. 11.2.5. jQuery: Farbtastic
        6. 11.2.6. jQuery: jQueryUI
      3. 11.3. Examining WordPress Plugins that Use JavaScript Effects
        1. 11.3.1. jQuery Reply to Comment
        2. 11.3.2. Social Bookmarks
        3. 11.3.3. WP Conditional Digg This Badge
        4. 11.3.4. WPTouch iPhone Theme
      4. 11.4. Looking at Theme Styles
        1. 11.4.1. Queuing styles
        2. 11.4.2. Using JavaScript to style elements
      5. 11.5. Summary
    4. 12. Dissecting the Comment Loop, Template Tags, and Theme Best Practices
      1. 12.1. Using Hooks in Themes
        1. 12.1.1. Common hooks
          1. 12.1.1.1. wp_head()
            1. 12.1.1.1.1. wp_footer()
            2. 12.1.1.1.2. comment_form
        2. 12.1.2. Additional hook suggestions
      2. 12.2. Implementing Scripts in Themes
      3. 12.3. Using Template Tags to Make Themes Dynamic
        1. 12.3.1. Using bloginfo() to access blog metadata
        2. 12.3.2. Using template tags in the Loop
        3. 12.3.3. Using Loop template tags outside the Loop
      4. 12.4. Creating Conversations with Threaded Comments and Paged Comments
      5. 12.5. Personalizing the Reader Experience with Avatars
      6. 12.6. Summary
  10. 4. Creating Content
    1. 13. Navigating the Content Production Experience
      1. 13.1. Customizing Your Workspace
      2. 13.2. Leveraging the Elements of Content Creation
        1. 13.2.1. Using the title strategically
        2. 13.2.2. Designating an excerpt
        3. 13.2.3. Enhancing searchability of content
          1. 13.2.3.1. Adjust the title slug
            1. 13.2.3.1.1. Use "bold" font to enhance importance
          2. 13.2.3.2. Add descriptive text to videos and podcasts
          3. 13.2.3.3. Write well
        4. 13.2.4. Looking at categories and tags: What's the difference?
          1. 13.2.4.1. Search implications
          2. 13.2.4.2. Architectural implications
          3. 13.2.4.3. Managing categories
            1. 13.2.4.3.1. Managing tags
        5. 13.2.5. Publishing and scheduling posts
        6. 13.2.6. Using custom fields
      3. 13.3. Hacking Your Experience: Getting the Most Out of Writing
        1. 13.3.1. Using the visual text editor
        2. 13.3.2. Using Full Screen mode
        3. 13.3.3. Using the Press This bookmarklet
      4. 13.4. Summary
    2. 14. Using Offline Editors
      1. 14.1. What Is XML-RPC?
        1. 14.1.1. WordPress-supported remote protocols
          1. 14.1.1.1. Blogger API
          2. 14.1.1.2. MetaWeblog API
          3. 14.1.1.3. Movable Type API
          4. 14.1.1.4. WordPress XML-RPC API
        2. 14.1.2. The bundled XML-RPC library
        3. 14.1.3. AtomPub and the upcoming standard of remote management
      2. 14.2. Understanding XML-RPC Security Risks
      3. 14.3. Looking at Offline Blog Editors
        1. 14.3.1. Windows Live Writer (Windows)
        2. 14.3.2. BlogDesk (Windows)
        3. 14.3.3. MarsEdit (Mac)
        4. 14.3.4. Ecto (Mac)
        5. 14.3.5. Drivel (Linux)
        6. 14.3.6. ScribeFire (All)
      4. 14.4. Summary
  11. 5. Keeping Up with the Joneses: Maintenance and Upgrades
    1. 15. Performing Automatic Upgrades
      1. 15.1. Meeting the Minimum Automatic Upgrade Requirements
      2. 15.2. Disabling the "Upgrade Nag"
      3. 15.3. Performing Automatic Upgrades
      4. 15.4. Using SSH for Automatic Upgrades
        1. 15.4.1. Using SSH with keys
        2. 15.4.2. Using constants to bypass credentials
      5. 15.5. Summary
    2. 16. Moving to WordPress and Backing It Up
      1. 16.1. Moving a Blog to WordPress
        1. 16.1.1. Blogger
        2. 16.1.2. Blogware
        3. 16.1.3. DotClear
        4. 16.1.4. LiveJournal
        5. 16.1.5. Movable Type and TypePad
        6. 16.1.6. WordPress
      2. 16.2. Importing Tags into WordPress
        1. 16.2.1. Converting categories to tags
        2. 16.2.2. Importing Ultimate Tag Warrior tags
      3. 16.3. Looking at Backup Routines
        1. 16.3.1. File backups
        2. 16.3.2. MySQL backups
          1. 16.3.2.1. Using mysqldump
          2. 16.3.2.2. Using phpMyAdmin
        3. 16.3.3. Backup scripting
      4. 16.4. Summary
    3. 17. WordPress Maintenance and Security
      1. 17.1. Upgrading WordPress
        1. 17.1.1. Upgrading manually with FTP
        2. 17.1.2. Debugging problems with FTP upgrades
          1. 17.1.2.1. Re-upload files
          2. 17.1.2.2. Check the error log
          3. 17.1.2.3. Roll back to a previous version
      2. 17.2. Choosing an FTP Client
        1. 17.2.1. Windows FTP clients
          1. 17.2.1.1. WS_FTP Professional
            1. 17.2.1.1.1. FileZilla
        2. 17.2.2. Mac OS X FTP clients
          1. 17.2.2.1. Transmit
            1. 17.2.2.1.1. Fetch
      3. 17.3. Practicing Sound WordPress Security
        1. 17.3.1. Data sanitization
          1. 17.3.1.1. Casting variables
          2. 17.3.1.2. Sanitizing HTML entities for XML
            1. 17.3.1.2.1. Using KSES to filter unsafe content
          3. 17.3.1.3. Escaping and encoding HTML
          4. 17.3.1.4. Escaping and encoding HTML attributes
          5. 17.3.1.5. Escaping and encoding JavaScript
          6. 17.3.1.6. Sanitizing URLs
            1. 17.3.1.6.1. Preventing SQL injection
        2. 17.3.2. File permissions
          1. 17.3.2.1. Unix file permissions
          2. 17.3.2.2. WordPress file permissions
      4. 17.4. Summary
    4. 18. Caching Strategy to Ensure WordPress Scales
      1. 18.1. Understanding Caching
      2. 18.2. Using WordPress Caching Mechanisms
        1. 18.2.1. WordPress object cache
          1. 18.2.1.1. wp_cache_add()
            1. 18.2.1.1.1. wp_cache_delete()
            2. 18.2.1.1.2. wp_cache_get()
            3. 18.2.1.1.3. wp_cache_replace()
            4. 18.2.1.1.4. wp_cache_flush()
        2. 18.2.2. The WP Super Cache plugin
        3. 18.2.3. Memcached and the Batcache plugin
      3. 18.3. Optimizing PHP with Opcode Caching
        1. 18.3.1. eAccelerator
        2. 18.3.2. APC
      4. 18.4. Caching MySQL with HyperDB and the Query Cache
        1. 18.4.1. MySQL query cache
        2. 18.4.2. HyperDB
      5. 18.5. Harnessing the "Cloud"
      6. 18.6. Summary
    5. 19. Understanding WordPress Roles and Capabilities
      1. 19.1. Looking at WordPress Roles and Capabilities
        1. 19.1.1. User levels
        2. 19.1.2. Adding and removing custom capabilities
        3. 19.1.3. Checking capabilities in plugins
      2. 19.2. Using the Role Manager Plugin
      3. 19.3. Summary
  12. 6. Alternate Uses for WordPress
    1. 20. Using WordPress for Alternative Blogging
      1. 20.1. Photoblogging with WordPress
        1. 20.1.1. What is a Photoblog?
        2. 20.1.2. Examples of notable photoblogs
          1. 20.1.2.1. ThomasHawk.com
            1. 20.1.2.1.1. The Fine Arts Photoblog
            2. 20.1.2.1.2. Lens
        3. 20.1.3. Great WordPress photoblog themes
          1. 20.1.3.1. Monotone
          2. 20.1.3.2. StudioPress Black Canvas
            1. 20.1.3.2.1. Nautilus
        4. 20.1.4. Using EXIF data in a photoblog
      2. 20.2. Implementing a Twitter-style Blog
      3. 20.3. Using Press This for a Tumble Blog
      4. 20.4. Summary
    2. 21. WordPress as a Content Management System
      1. 21.1. Using WordPress as a Content Management System
      2. 21.2. Understanding Enterprise WordPress Needs
        1. 21.2.1. Single sign-on authentication
        2. 21.2.2. Lead generation and CRM integration
        3. 21.2.3. WordPress support
      3. 21.3. Conveying a Consistent Message and Brand
      4. 21.4. Understanding When a Blog Is Not a Blog
        1. 21.4.1. Custom content types
      5. 21.5. Summary
  13. 7. Looking at the WordPress Ecosystem
    1. 22. Leveraging WordPress MU and Multi-Blog Functionality
      1. 22.1. Installing and Configuring WordPress MU
        1. 22.1.1. Installing WordPress MU
        2. 22.1.2. Configuring WordPress MU
          1. 22.1.2.1. Wildcard DNS configuration
          2. 22.1.2.2. Apache Wildcard Vhost configuration
      2. 22.2. Converting a WordPress Blog to WordPress MU
        1. 22.2.1. Admin panel
        2. 22.2.2. Blogs panel
        3. 22.2.3. Users panel
        4. 22.2.4. Themes panel
        5. 22.2.5. Options panel
        6. 22.2.6. Upgrade panel
      3. 22.3. Understanding WordPress MU Plugin Nuances
        1. 22.3.1. Blog ID
        2. 22.3.2. WordPress MU database schema
          1. 22.3.2.1. Site configuration tables
            1. 22.3.2.1.1. Blogs table
            2. 22.3.2.1.2. Blog Versions table
            3. 22.3.2.1.3. Registration Log table
            4. 22.3.2.1.4. Site table
            5. 22.3.2.1.5. Site Meta table
            6. 22.3.2.1.6. Site Categories table
            7. 22.3.2.1.7. Signups table
            8. 22.3.2.1.8. Blog-specific tables
      4. 22.4. Adapting to WordPress MU
        1. 22.4.1. Activating plugins site wide
        2. 22.4.2. Constructing image permalinks
        3. 22.4.3. Using WordPress MU with different domains
      5. 22.5. Summary
    2. 23. Adding User Forums with bbPress
      1. 23.1. Installing bbPress
      2. 23.2. Finding bbPress Plugins
      3. 23.3. Understanding the bbPress Theme System
      4. 23.4. Summary
    3. 24. Creating Your Own Social Network with BuddyPress
      1. 24.1. What Is BuddyPress?
        1. 24.1.1. Activity Stream
        2. 24.1.2. Blog tracking
        3. 24.1.3. bbPress integration
        4. 24.1.4. Friends
        5. 24.1.5. Groups
        6. 24.1.6. Private Messaging
        7. 24.1.7. Comment Wire
        8. 24.1.8. Extended Profile
      2. 24.2. Configuring BuddyPress
        1. 24.2.1. General Settings
          1. 24.2.1.1. Base profile group name
          2. 24.2.1.2. Full Name field name
          3. 24.2.1.3. Disable BuddyPress to WordPress profile syncing
          4. 24.2.1.4. Hide admin bar for logged out users
          5. 24.2.1.5. Disable profile picture uploads
          6. 24.2.1.6. Allow non-friends to post on profile wires
          7. 24.2.1.7. Disable user account deletion
          8. 24.2.1.8. Disable global forum directory
          9. 24.2.1.9. Default user profile picture
        2. 24.2.2. Component Setup
        3. 24.2.3. Forums Setup
        4. 24.2.4. Profile Field Setup
      3. 24.3. Comparing BuddyPress and WordPress Development
      4. 24.4. Looking at BuddyPress Theme Concepts
      5. 24.5. Extending BuddyPress
      6. 24.6. Summary
    4. 25. Using BackPress as a Development Framework
      1. 25.1. Defining BackPress
      2. 25.2. Developing with BackPress
        1. 25.2.1. Including BackPress in your PHP project
        2. 25.2.2. Understanding the BackPress facilities
          1. 25.2.2.1. class.bp-log.php
          2. 25.2.2.2. class.bp-roles.php
          3. 25.2.2.3. class.bp-sql-schema-parser.php
          4. 25.2.2.4. class.bp-user.php
          5. 25.2.2.5. class.bpdb.php
          6. 25.2.2.6. class.bpdb-multi.php
          7. 25.2.2.7. class.ixr.php
          8. 25.2.2.8. class.mailer-smtp.php
          9. 25.2.2.9. class.mailer.php
          10. 25.2.2.10. class.passwordhash.php
          11. 25.2.2.11. class.wp-ajax-response.php
          12. 25.2.2.12. class.wp-auth.php
          13. 25.2.2.13. class.wp-dependencies.php
          14. 25.2.2.14. class.wp-error.php
          15. 25.2.2.15. class.wp-http.php
          16. 25.2.2.16. class.wp-object-cache.php and class.wp-object-cache-memcached.php
          17. 25.2.2.17. class.wp-pass.php
          18. 25.2.2.18. class.wp-scripts.php
          19. 25.2.2.19. class.wp-styles.php
          20. 25.2.2.20. class.wp-taxonomy.php
          21. 25.2.2.21. class.wp-users.php
      3. 25.3. Solving BackPress Dependencies
      4. 25.4. Summary
    5. 26. WordPress.com and the Automattic Products
      1. 26.1. About Automattic
        1. 26.1.1. After the Deadline
        2. 26.1.2. Akismet
        3. 26.1.3. Gravatar
        4. 26.1.4. IntenseDebate
        5. 26.1.5. P2 Theme
        6. 26.1.6. PollDaddy
        7. 26.1.7. VideoPress
        8. 26.1.8. VIP
      2. 26.2. Taking a Look at Automattic's Propriety Products
        1. 26.2.1. WordPress
        2. 26.2.2. BuddyPress
        3. 26.2.3. bbPress
        4. 26.2.4. BackPress
        5. 26.2.5. WordPress app for iPhone
        6. 26.2.6. WordPress app for BlackBerry
      3. 26.3. Using WordPress.com Themes
      4. 26.4. Getting Your Plugin Included in WordPress.com
      5. 26.5. Buying Premium WordPress.com Features
        1. 26.5.1. Custom CSS
        2. 26.5.2. Disk space upgrades
        3. 26.5.3. Domain mapping
        4. 26.5.4. No-ads
        5. 26.5.5. Unlimited Private Users
        6. 26.5.6. VideoPress
      6. 26.6. Summary
    6. 27. Leveraging Automattic Products
      1. 27.1. Obtaining a WordPress.com API Key
      2. 27.2. Using Akismet to Kill Spam
        1. 27.2.1. Verify Key
        2. 27.2.2. Comment Checking
        3. 27.2.3. Submit Spam
        4. 27.2.4. Submit Ham
      3. 27.3. Making Use of WordPress.com Stats
      4. 27.4. Engaging Readers with IntenseDebate
      5. 27.5. Crowdsourcing with PollDaddy
      6. 27.6. Summary
  14. 8. Appendixes
    1. A. WordPress Hook Reference
      1. A.1. Using Actions
      2. A.2. Using Filters
      3. A.3. Hook Reference: Alphabetical Listing
      4. A.4. Hook Reference: General Uses
      5. A.5. Summary
    2. B. Template Tags
      1. B.1. Understanding the Template Tag Concept
      2. B.2. Breaking Down the WordPress Templating System
        1. B.2.1. Include tags
          1. B.2.1.1. Header
          2. B.2.1.2. Sidebar
          3. B.2.1.3. Search Form
          4. B.2.1.4. Comments
          5. B.2.1.5. Footer
        2. B.2.2. Blog Info tags
          1. B.2.2.1. Blog Info (Echoed)
          2. B.2.2.2. Blog Info (Returned)
          3. B.2.2.3. Blog Info for RSS (Echoed)
          4. B.2.2.4. Blog Info for RSS (Returned)
        3. B.2.3. Lists and dropdowns
          1. B.2.3.1. Authors List
          2. B.2.3.2. Categories List
          3. B.2.3.3. Pages List
          4. B.2.3.4. Bookmarks/Links List
          5. B.2.3.5. Comments List
          6. B.2.3.6. Archives List
          7. B.2.3.7. Page Menu/Navigation
          8. B.2.3.8. Pages Dropdown
          9. B.2.3.9. Categories Dropdown
          10. B.2.3.10. Users Dropdown
        4. B.2.4. Login/Logout tags
          1. B.2.4.1. Logged in or Logged out?
          2. B.2.4.2. Login URL
          3. B.2.4.3. Logout URL
          4. B.2.4.4. Lost Password URL
          5. B.2.4.5. Logout
          6. B.2.4.6. Login and Out URL
          7. B.2.4.7. Register URL
        5. B.2.5. Post tags
          1. B.2.5.1. Post ID
          2. B.2.5.2. Post Title
          3. B.2.5.3. Post Title (RSS)
          4. B.2.5.4. Post Title Attribute
          5. B.2.5.5. Post Title (Single)
          6. B.2.5.6. Post Content
          7. B.2.5.7. Post Content (RSS)
          8. B.2.5.8. Post Excerpt
          9. B.2.5.9. Post Excerpt (RSS)
          10. B.2.5.10. Post Pagination Links
          11. B.2.5.11. Next Post Link
          12. B.2.5.12. Next Posts Link
          13. B.2.5.13. Previous Posts Link
          14. B.2.5.14. Previous Posts Link
          15. B.2.5.15. Next Image Link
          16. B.2.5.16. Previous Image Link
          17. B.2.5.17. Sticky Post Class
          18. B.2.5.18. Post Categories
          19. B.2.5.19. Post Categories (RSS)
          20. B.2.5.20. Post Tags
          21. B.2.5.21. Post Meta
        6. B.2.6. Comments tags
          1. B.2.6.1. Number of Comments
          2. B.2.6.2. Comments Link
          3. B.2.6.3. Comments Popup Script
          4. B.2.6.4. Comments Link (Popup)
          5. B.2.6.5. Comment ID
          6. B.2.6.6. Comment ID Fields (Threaded Comments)
          7. B.2.6.7. Comments Author
          8. B.2.6.8. Comments Author with Link
          9. B.2.6.9. Comments Author Email
          10. B.2.6.10. Comments Author E-mail with Link
          11. B.2.6.11. Comments Author URL
          12. B.2.6.12. Comments Author URL with Link
          13. B.2.6.13. Comments Author IP Address
          14. B.2.6.14. Comment Type
          15. B.2.6.15. Comments Text
          16. B.2.6.16. Comments Excerpt
          17. B.2.6.17. Comment Date
          18. B.2.6.18. Comment Time
          19. B.2.6.19. Comment Form Title
          20. B.2.6.20. Comments Author (RSS)
          21. B.2.6.21. Comments Text (RSS)
          22. B.2.6.22. Avatars
          23. B.2.6.23. Permalink Comments (RSS)
          24. B.2.6.24. Comment Reply Link
          25. B.2.6.25. Cancel Comment Reply Link
          26. B.2.6.26. Previous Comments Link
          27. B.2.6.27. Next Comments Link
          28. B.2.6.28. Comment Pagination Links
        7. B.2.7. Category tags
          1. B.2.7.1. Categories
          2. B.2.7.2. Categories (RSS)
          3. B.2.7.3. Categories (Dropdown)
          4. B.2.7.4. Categories (List)
          5. B.2.7.5. Currently Browsing Category Archive Title
          6. B.2.7.6. Category Description
        8. B.2.8. Tag/Taxonomy tags
          1. B.2.8.1. Tags
          2. B.2.8.2. Tag Description
          3. B.2.8.3. Currently Browsing Tag Archive Title
          4. B.2.8.4. Tag Cloud
        9. B.2.9. Author tags
          1. B.2.9.1. The Author
          2. B.2.9.2. The Author Link
          3. B.2.9.3. The Author Post Count
          4. B.2.9.4. The Author Post Count Link
          5. B.2.9.5. The Author Meta
          6. B.2.9.6. Listing Authors
          7. B.2.9.7. Listing Authors (Dropdown)
          8. B.2.9.8. Last Modified Author
        10. B.2.10. Date and Time tags
          1. B.2.10.1. Post Time
          2. B.2.10.2. Post Time (Modified)
          3. B.2.10.3. Post Date
          4. B.2.10.4. Post Date (Modified)
          5. B.2.10.5. Post Date (XML)
          6. B.2.10.6. Current Month
        11. B.2.11. Edit links
          1. B.2.11.1. Edit Post Link
          2. B.2.11.2. Edit Comment Link
          3. B.2.11.3. Edit Tag Link
          4. B.2.11.4. Edit Bookmark Link
        12. B.2.12. Permalink tags
          1. B.2.12.1. Permalink Anchor
          2. B.2.12.2. Permalink for a Specified Post
          3. B.2.12.3. Permalink for a Post
          4. B.2.12.4. Permalink for a Single Post (RSS)
        13. B.2.13. Links tags
          1. B.2.13.1. Listing Bookmarks
          2. B.2.13.2. Get Bookmarks
          3. B.2.13.3. Get Bookmark
        14. B.2.14. Trackback tags
          1. B.2.14.1. Trackback URL
          2. B.2.14.2. Trackback RDF
        15. B.2.15. Title tags
          1. B.2.15.1. Blog Title
          2. B.2.15.2. Single Post Titles
          3. B.2.15.3. Single Category Title
          4. B.2.15.4. Single Tag Title
          5. B.2.15.5. Single Month Title
          6. B.2.15.6. Search Query
      3. B.3. Summary
    3. C. What About PHP 5?
      1. C.1. PHP 4 versus PHP 5: Understanding Core Differences
      2. C.2. WordPress and PHP 5
      3. C.3. Summary
    4. D. WordPress Hosting
      1. D.1. Features and Requirements of Web Hosts
        1. D.1.1. Disk space
        2. D.1.2. Bandwidth provision
        3. D.1.3. Backups
        4. D.1.4. Secure Shell
      2. D.2. Types of Web Hosts
        1. D.2.1. Dedicated servers
          1. D.2.1.1. ServerBeach
          2. D.2.1.2. Layered Technologies
          3. D.2.1.3. Media Temple
          4. D.2.1.4. Rackspace
        2. D.2.2. Shared hosting
          1. D.2.2.1. DreamHost
          2. D.2.2.2. BlueHost
        3. D.2.3. Green Web hosting
      3. D.3. Summary
    5. E. WordPress Vendors and Professional Services
      1. E.1. Top Consultants in the WordPress Community
        1. E.1.1. Covered Web Services
        2. E.1.2. Crowd Favorite
        3. E.1.3. E.Webscapes
        4. E.1.4. Yoast
        5. E.1.5. cnp_studio
      2. E.2. Directory of Automattic-Recommended Consultants
      3. E.3. Summary
    6. F. WordPress in Government
      1. F.1. WordPress Use in the Federal Government
        1. F.1.1. Government case studies
          1. F.1.1.1. Department of State
            1. F.1.1.1.1. Coast Guard
            2. F.1.1.1.2. Office of the Director of National Intelligence
          2. F.1.1.2. Library of Congress
      2. F.2. WordPress Use Outside the United States
        1. F.2.1. United Kingdom: 10 Downing Street
        2. F.2.2. South Africa: Province of the Eastern Cape
      3. F.3. Summary
    7. G. WordPress in Major Media
      1. G.1. Newsroom Challenges for WordPress
      2. G.2. Roadmapping WordPress in Major Media
        1. G.2.1. WordPress MU Sitewide Tags
        2. G.2.2. BuddyPress
        3. G.2.3. RSSCloud
      3. G.3. Summary
    8. H. The General Public License
      1. H.1. Preamble
      2. H.2. GNU GENERAL PUBLIC LICENSE
        1. H.2.1. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
        2. H.2.2. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
        3. H.2.3. NO WARRANTY