You are previewing Beginning WordPress 3.
O'Reilly logo
Beginning WordPress 3

Book Description

WordPress is one of the most popular blogging and content management web templating platforms—it easily allows you and your business to make a statement about yourself and what you do. WordPress is also quite cost-effective, as it's free for just about anyone to use.

WordPress is colorful and flexible, and includes a variety of themes, templates, and plug-ins for you to explore and use. Beginning WordPress 3 aims to address these for the beginner who wants to start using and developing with WordPress.

  • This book is one of the first on the latest WordPress 3.0 engine.

  • With this book, you'll learn about blogging, developing a blog, creating newsletters/papers, and managing/publishing this popular CMS.

  • The author, Stephanie Leary, brings you her expertise as a professional trainer and educator who has used WordPress extensively in education and more.

Table of Contents

  1. Copyright
  2. About the Author
  3. About the Technical Reviewer
  4. Acknowledgments
  5. Introduction
    1. Getting Involved in Development
    2. A word of caution
  6. 1. About WordPress
    1. 1.1. Why WordPress?
      1. 1.1.1. Easy to Set Up
      2. 1.1.2. Easy to Use
      3. 1.1.3. Easy to Extend
      4. 1.1.4. The Business Benefits of WordPress
    2. 1.2. Sites Built with WordPress
      1. 1.2.1. Personal Blogs
      2. 1.2.2. Blog Networks
      3. 1.2.3. Social Networks
      4. 1.2.4. Colleges and Universities
      5. 1.2.5. Small Businesses
    3. 1.3. WordPress Tour
      1. 1.3.1. Anatomy of a post
    4. 1.4. Summary
  7. 2. Installing and Upgrading
    1. 2.1. System Requirements
    2. 2.2. One-click Installation
    3. 2.3. Installation Using the Web Interface
    4. 2.4. Logging In
    5. 2.5. Editing and Uploading wp-config.php
    6. 2.6. Troubleshooting
    7. 2.7. Installing Themes
    8. 2.8. Installing Plugins
      1. 2.8.1. Plugging the gaps: Essential Plugins
      2. 2.8.2. Upgrading Plugins
        1. 2.8.2.1. Bulk Upgrades
    9. 2.9. Upgrading WordPress
      1. 2.9.1. Automatic Upgrades
        1. 2.9.1.1. Automatic Upgrades via FTP or SSH
      2. 2.9.2. Manual Upgrades
    10. 2.10. Moving a WordPress Site
    11. 2.11. Summary
  8. 3. Dashboard and Settings
    1. 3.1. The Dashboard
      1. 3.1.1. QuickPress
      2. 3.1.2. Incoming Links
      3. 3.1.3. WordPress Development Blog
      4. 3.1.4. Plugin dashboard widgets
      5. 3.1.5. Dashboard Widgets and Users
    2. 3.2. Settings
      1. 3.2.1. General
      2. 3.2.2. Writing
        1. 3.2.2.1. Remote Publishing and Posting by E-mail
        2. 3.2.2.2. Update Services
      3. 3.2.3. Reading
      4. 3.2.4. Discussion
        1. 3.2.4.1. Default Article Settings
        2. 3.2.4.2. Other Comment Settings
        3. 3.2.4.3. Comment E-mail Notifications
        4. 3.2.4.4. Comment Moderation
        5. 3.2.4.5. Avatars
      5. 3.2.5. Media
        1. 3.2.5.1. Directory for file uploads
      6. 3.2.6. Privacy
      7. 3.2.7. Permalinks
        1. 3.2.7.1. Short URLs
        2. 3.2.7.2. Category Base
    3. 3.3. Summary
  9. 4. Working with Content
    1. 4.1. Posts
      1. 4.1.1. Content
        1. 4.1.1.1. Dealing with Content from Microsoft Office
        2. 4.1.1.2. Shortcodes
      2. 4.1.2. Permalinks
      3. 4.1.3. Publish Settings
        1. 4.1.3.1. Publication Date and Scheduling Posts
      4. 4.1.4. Categories
      5. 4.1.5. Tags
      6. 4.1.6. Featured Images
      7. 4.1.7. Excerpts
      8. 4.1.8. Comments and Trackbacks
      9. 4.1.9. Revisions
      10. 4.1.10. Custom Fields
    2. 4.2. Pages
      1. 4.2.1. Page Attributes: Parents, Templates, and Order
    3. 4.3. Posts vs. Pages: Same, but Different
      1. 4.3.1. Posts are Pages; Pages are Posts
      2. 4.3.2. Editing Posts and Pages
        1. 4.3.2.1. Autosave
        2. 4.3.2.2. Screen Options
        3. 4.3.2.3. Quick Edit
        4. 4.3.2.4. Bulk Edit
    4. 4.4. Media Files
      1. 4.4.1. Images and Galleries
        1. 4.4.1.1. Uploading an Image from Your Computer
        2. 4.4.1.2. Inserting an Image from a URL
        3. 4.4.1.3. Editing Images
        4. 4.4.1.4. Galleries
      2. 4.4.2. Video
        1. 4.4.2.1. oEmbed
      3. 4.4.3. Audio
        1. 4.4.3.1. Podcasting
      4. 4.4.4. Other File Types
        1. 4.4.4.1. File Sizes and Upload Permissions
      5. 4.4.5. The Media Library
    5. 4.5. Links
      1. 4.5.1. Basic Link Attributes
      2. 4.5.2. Link Relationships: XFNTM
      3. 4.5.3. Advanced Link Attributes
      4. 4.5.4. Link Feed
    6. 4.6. Feeds
    7. 4.7. Summary
  10. 5. Importing Content
    1. 5.1. Before Importing
    2. 5.2. Importing Blogs
      1. 5.2.1. Importing from WordPress.com
      2. 5.2.2. Importing from Blogger
    3. 5.3. Importing Joomla or Mambo Sites
    4. 5.4. Importing Other MySQL-based Sites
      1. 5.4.1. Drupal
    5. 5.5. Importing HTML Files
    6. 5.6. After Importing: Fixing What's Broken
      1. 5.6.1. Link URLs
      2. 5.6.2. Paths to Linked Files
      3. 5.6.3. Truncated or Garbled Content
    7. 5.7. Summary
  11. 6. Creating a Basic Theme
    1. 6.1. Using Widgets
    2. 6.2. Using Menus
      1. 6.2.1. Creating a Menu
      2. 6.2.2. Editing Menu Items
      3. 6.2.3. Creating Multiple Menus
    3. 6.3. Using Header and Background Images
    4. 6.4. Turning HTML into a Theme
      1. 6.4.1. Header
      2. 6.4.2. Body
        1. 6.4.2.1. Body and Post Classes
        2. 6.4.2.2. Content: The Loop
        3. 6.4.2.3. Comments
        4. 6.4.2.4. Sidebar
      3. 6.4.3. Footer
      4. 6.4.4. Stylesheet
    5. 6.5. Template Tags
      1. 6.5.1.
        1. 6.5.1.1. Date and Time Tags
    6. 6.6. Theme Files
    7. 6.7. Theme File Hierarchy
      1. 6.7.1. The Home Page
      2. 6.7.2. Single Posts
      3. 6.7.3. Pages
      4. 6.7.4. Custom Content Types
      5. 6.7.5. Category Archives
      6. 6.7.6. Tag Archives
      7. 6.7.7. Custom Taxonomy Archives
      8. 6.7.8. Author Archives
      9. 6.7.9. Date-Based Archives
      10. 6.7.10. Search Results
      11. 6.7.11. Error 404 (File Not Found) Page
      12. 6.7.12. Attachment Pages
    8. 6.8. Listing Comments
    9. 6.9. Including Additional Files
    10. 6.10. Styling Content
    11. 6.11. Changing Appearance Based on Context
      1. 6.11.1. Conditional Tags
      2. 6.11.2. Posts vs. Pages
      3. 6.11.3. Categories
      4. 6.11.4. Author Archives
      5. 6.11.5. Search Results
    12. 6.12. Creating Navigation Menus
      1. 6.12.1. Custom Navigation Tag
      2. 6.12.2. Page Lists and Page Menus
        1. 6.12.2.1. Changing the Page Order
        2. 6.12.2.2. Changing Which Pages are Listed
        3. 6.12.2.3. Including Links to Things Outside WordPress
      3. 6.12.3. Category Lists
    13. 6.13. Theme Functions
      1. 6.13.1. Enabling Widgets
      2. 6.13.2. Enabling Menus
      3. 6.13.3. Enabling Featured Images
      4. 6.13.4. Enabling Custom Backgrounds and Headers
      5. 6.13.5. Enabling Shortcodes in Text Widgets
      6. 6.13.6. Changing Excerpt Length and Ellipsis
      7. 6.13.7. Other Uses
    14. 6.14. Child Themes
      1. 6.14.1. Child Theme File Hierarchy
    15. 6.15. Troubleshooting Themes
    16. 6.16. Summary
  12. 7. Creating an Advanced Theme
    1. 7.1. Modifying the Loop
      1. 7.1.1. Excluding a Category from the Home Page
      2. 7.1.2. Showing Only One Category on the Home Page
      3. 7.1.3. Showing Most Recent Pages Instead of Posts
      4. 7.1.4. Looping Through All Children of a Page
      5. 7.1.5. Listing Attached Files
    2. 7.2. Multiple Loops
      1. 7.2.1. Resetting the Query
      2. 7.2.2. A Loop for Each Category
      3. 7.2.3. Showing the Author's Other Recent Posts
    3. 7.3. Accessing Post Information Outside the Loop
    4. 7.4. Search Engine Optimization (SEO)
      1. 7.4.1. Improving the Title Tag
      2. 7.4.2. Using Categories and Tags as Keywords
      3. 7.4.3. Using the Excerpt as a Description
      4. 7.4.4. Short Links and Canonical URLs
    5. 7.5. Adding Scripts and Stylesheets
      1. 7.5.1. Using JavaScript Libraries
      2. 7.5.2. Adding Your Own Scripts
      3. 7.5.3. Conditionally Adding Scripts
      4. 7.5.4. Adding Stylesheets
    6. 7.6. Outside the Theme Hierarchy: Database Errors and Maintenance Messages
    7. 7.7. Theme Options
      1. 7.7.1. Adding an Options Page
      2. 7.7.2. Registering Options
      3. 7.7.3. Creating an Options Form
        1. 7.7.3.1. The checked() and selected() Functions
        2. 7.7.3.2. Saving Form Input into a Single Variable
      4. 7.7.4. Adding a Stylesheet to the Options Page
      5. 7.7.5. Putting it All Together
    8. 7.8. Theme Frameworks
    9. 7.9. Distributing Themes
      1. 7.9.1. Theme Checklist
    10. 7.10. Summary
  13. 8. Creating Widgets
    1. 8.1. Basic Widgets
      1. 8.1.1. Examining the Calendar Widget
        1. 8.1.1.1. The Options Form
        2. 8.1.1.2. The Update Function
        3. 8.1.1.3. The Widget Output
        4. 8.1.1.4. Setting up the Widget
      2. 8.1.2. Creating Your Own Widget
      3. 8.1.3. More Widget Examples
    2. 8.2. Dashboard Widgets
      1. 8.2.1. Configuration Screens
    3. 8.3. Summary
  14. 9. Creating Plugins
    1. 9.1. Getting started
    2. 9.2. Creating a Template Tag
      1. 9.2.1. Creating Template Tags with Arguments
      2. 9.2.2. Making Room for Options
    3. 9.3. Adding an Options Page
    4. 9.4. The Settings API
      1. 9.4.1. Registering Settings and Creating Defaults
      2. 9.4.2. Creating the Options Form
      3. 9.4.3. Updating Options
      4. 9.4.4. Deleting Options
    5. 9.5. Wrapping Up
    6. 9.6. Plugin Possibilities
      1. 9.6.1. The Shortcode API
      2. 9.6.2. Checking for Capabilities
        1. 9.6.2.1. Creating an Editorial Comment Shortcode
        2. 9.6.2.2. Listing Private Pages
    7. 9.7. Hooks: Filters and Actions
      1. 9.7.1. Actions
        1. 9.7.1.1. Creating Private Categories
      2. 9.7.2. Filters
        1. 9.7.2.1. Appending a List of Child Pages
        2. 9.7.2.2. Changing the "Private" and "Password Protected" labels
        3. 9.7.2.3. Other Filters
      3. 9.7.3. Prioritizing and Troubleshooting Actions and Filters
    8. 9.8. Variations on Option Pages
      1. 9.8.1. Adding Other Submenus
      2. 9.8.2. Adding a Top-level Menu Item
      3. 9.8.3. Adding a Section to an Existing Options Page
    9. 9.9. Publishing a Plugin
      1. 9.9.1. Readme Files and Screenshots
      2. 9.9.2. Subversion (SVN)
        1. 9.9.2.1. Basic Concepts
        2. 9.9.2.2. Branches, Tags, and Trunk
        3. 9.9.2.3. Client Software
          1. 9.9.2.3.1. Mac: Versions
          2. 9.9.2.3.2. Windows: TortoiseSVN
      3. 9.9.3. Localization and Internationalization
        1. 9.9.3.1. Wrapping Strings in Gettext Calls
        2. 9.9.3.2. Adding the Gettext Domain
        3. 9.9.3.3. Creating the .POT File
        4. 9.9.3.4. Adding the i18n Function Block
    10. 9.10. Summary
  15. 10. Users and Roles
    1. 10.1. Users
      1. 10.1.1. Displaying a User's Information
    2. 10.2. Extending User Profiles
      1. 10.2.1. Changing Contact Fields
      2. 10.2.2. Creating More Profile Fields
      3. 10.2.3. Displaying All Users' Information
    3. 10.3. Roles
    4. 10.4. Roles in Action: Notifications, Moderation, and Workflow
      1. 10.4.1. Improving Workflow with Plugins
        1. 10.4.1.1. Notification of Posts Pending Review
        2. 10.4.1.2. Notifying All Administrators
        3. 10.4.1.3. Viewing Scheduled Posts
        4. 10.4.1.4. Complete Workflow
    5. 10.5. Changing, Creating, and Removing Roles
      1. 10.5.1. Modifying Roles
      2. 10.5.2. Creating Roles
        1. 10.5.2.1. Creating a Role for Designers
      3. 10.5.3. Removing Roles
      4. 10.5.4. Managing Roles with Plugins
        1. 10.5.4.1. Members Plugin
    6. 10.6. Summary
  16. 11. Performance and Security
    1. 11.1. Caching
      1. 11.1.1. Setting up Super Cache
        1. 11.1.1.1. Basic Settings
        2. 11.1.1.2. Compression
        3. 11.1.1.3. Other Settings
      2. 11.1.2. Caching and Mobile Stylesheets
    2. 11.2. Permalinks and Performance
    3. 11.3. Tracking Down Performance Problems
    4. 11.4. Securing Logins
      1. 11.4.1. Login Lockdown
      2. 11.4.2. SSL
    5. 11.5. Removing The Meta Generator Tag
    6. 11.6. File Permissions
      1. 11.6.1. Securing .htaccess and wp-config.php
    7. 11.7. Changing File Locations
      1. 11.7.1. Moving wp-config.php
      2. 11.7.2. Giving WordPress Its Own Subdirectory
      3. 11.7.3. Moving wp-content
    8. 11.8. Database Security
      1. 11.8.1. Changing the Table Prefix
      2. 11.8.2. Backing Up the Database and Files
    9. 11.9. Monitoring Security Problems
    10. 11.10. Summary
  17. 12. Custom Content Types, Taxonomies, and Fields
    1. 12.1. Custom Taxonomies
      1. 12.1.1. Non-hierarchical Taxonomies
      2. 12.1.2. Hierarchical Taxonomies
      3. 12.1.3. Using Custom Taxonomies
        1. 12.1.3.1. Other Taxonomy Examples
    2. 12.2. Custom Content Types
      1. 12.2.1. Non-hierarchical (Post-like) Content Types
      2. 12.2.2. Hierarchical (Page-like) Content Types
      3. 12.2.3. Custom Taxonomies for Custom Content Types
      4. 12.2.4. Changing Edit Screen Columns
        1. 12.2.4.1. Changing Column Headers
        2. 12.2.4.2. Displaying Column Contents
      5. 12.2.5. Including Custom Content Types in Your Theme
      6. 12.2.6. Feeds for Custom Content Types
    3. 12.3. Custom Fields in Custom Content Types
      1. 12.3.1. Creating the Custom Fields
      2. 12.3.2. Verifying and Saving User Input
      3. 12.3.3. All Together
    4. 12.4. Summary
  18. 13. Setting up the Network
    1. 13.1. Network Requirements
      1. 13.1.1. Subdomains
      2. 13.1.2. Subfolders
    2. 13.2. Activating the Network
    3. 13.3. Configuring the Network
      1. 13.3.1. Operational Settings
      2. 13.3.2. Dashboard Settings
      3. 13.3.3. Registration Settings
      4. 13.3.4. New Site Settings
      5. 13.3.5. Upload Settings
      6. 13.3.6. Menu Settings
    4. 13.4. Creating Additional Network Sites
    5. 13.5. Network Users
      1. 13.5.1. Splogs
    6. 13.6. Network Plugins and Themes
      1. 13.6.1. Plugin and Theme Options
    7. 13.7. Upgrading the Network
    8. 13.8. Mapping Domains
    9. 13.9. BuddyPress
      1. 13.9.1. Features
        1. 13.9.1.1. Activity Stream
        2. 13.9.1.2. Groups
        3. 13.9.1.3. Forum
        4. 13.9.1.4. Friends and Private Messages
      2. 13.9.2. Installation
        1. 13.9.2.1. General
        2. 13.9.2.2. Components
        3. 13.9.2.3. Forums
        4. 13.9.2.4. Profile
      3. 13.9.3. Using BuddyPress
    10. 13.10. Summary
  19. A. Plugin Index
  20. B. Theme Functions
  21. C. Plugin Recipes
    1. C.1. Wiki
    2. C.2. Document Sharing
    3. C.3. Project Management
    4. C.4. Newsroom
    5. C.5. Twitter Archive
    6. C.6. News Clipping Archive