Beginning WordPress 3 is outdated! You should get the new edition instead: WordPress for Web Developers. (It’s the same book, only updated; we changed the title to make its intended audience clearer.)
- Introduction
- Blogging vs. content management
- Why WP?
- WP’s CMS capabilities
- Major sites using WP
- Installation
- Requirements
- Settings
- Reading settings
- Discussion: comments and trackbacks
- Permalinks
- Working with content (Download as a PDF)
- Importing content
- From blogs
- Blogger
- WordPress
- From Joomla
- From Other MySQL Sites
- Drupal
- From static files
- From blogs
- Creating a basic theme
- Using widgets
- Using menus
- Creating a menu
- Editing menu items
- Creating multiple menus
- Using header and background images
- Turning HTML into a WP Theme
- Body and post classes
- The Loop
- Template tags
- Theme file hierarchy
- Listing comments
- Including additional files
- Styling content
- Changing appearance based on context
- Conditional tags
- body and post classes
- posts vs. pages
- Archives: date, category, author
- Search results
- Creating navigation menus
- Custom navigation tag
- Page lists and page menus
- Category lists
- Theme functions
- Setting up widgets
- Enabling menus
- Enabling featured images (post thumbnails)
- Enabling custom background images
- Enabling shortcodes in text widgets
- Changing excerpt length and ellipsis
- Child themes
- Child theme file hierarchy
- Troubleshooting themes
- Creating an advanced theme
- Modifying the Loop
- Excluding a category from the home page
- Showing only one category on the home page
- Showing most recent pages instead of posts
- Looping through all children of a page
- Listing attached files
- Multiple Loops
- Resetting the query
- A Loop for each category
- Showing the author’s other recent posts
- Accessing post information outside the Loop
- SEO
- Improving the title tag
- Using categories and tags as keywords
- Using the excerpt as a description
- Shortlinks and canonical URLs
- Adding scripts and stylesheets
- Using JavaScript libraries
- Adding your own scripts
- Conditionally adding scripts
- Adding stylesheets
- Outside the theme hierarchy: database errors and maintenance messages
- Theme options
- Adding an options page
- Registering options
- Creating an options form
- Adding a stylesheet to the options page
- Theme frameworks
- Theme frameworks
- Distributing themes
- Theme checklist
- Modifying the Loop
- Creating widgets
- Basic widgets
- Dashboard widgets
- Configuration screens
- Creating plugins
- Creating a template tag
- Adding an options page
- Setting defaults and updating options with the settings API
- Plugin possibilities
- Creating a shortcode
- Checking for capabilities
- Hooks: filters and actions
- Actions
- Filters
- Variations on option pages
- Adding other submenus
- Adding a top-level menu item
- Adding a section to an existing option page
- Publishing a plugin
- Readme files and screenshots
- Subversion (SVN)
- Localization and internationalization
- Working with users
- Profiles
- Roles
- Changing capabilities
- Creating roles
- Removing roles
- Managing roles with plugins
- Workflow
- Notifications
- Moderation
- Improving workflow with plugins
- Performance and Security
- Caching
- Setting up WP Super Cache
- Permalinks and performance
- Tracking down performance problems
- Securing logins
- Login Lockdown
- SSL
- Removing the meta generator tag
- File permissions
- Securing
.htaccess
andwp-config.php
- Securing
- Changing file locations
- Moving wp-config.php
- Giving WordPress its own subdirectory
- Moving wp-content
- Database security
- Changing the table prefix
- Backing up the database and files
- Monitoring security problems
- Caching
- Custom content types, taxonomies, and fields
- Creating taxonomies
- Non-hierarchical (like tags)
- Hierarchical (like categories)
- Using custom taxonomies
- Custom content types
- non-hierarchical (like posts)
- hierarchical (like pages)
- Custom taxonomies for custom content types
- Including custom content types in the Loop
- Feeds for custom content types
- Custom fields
- Creating the custom fields
- Verifying and saving user input
- Creating taxonomies
- The Network
- Requirements
- Subdomains
- Subfolders
- Activating the network
- Configuring the network
- Network users
- Splogs
- Network plugins and themes
- Plugin and theme options
- Upgrading the network
- Mapping domains
- BuddyPress
- Requirements
- Appendix: Plugin index
- Appendix: Theme functions
- Appendix: Plugin recipes
See also: Updates and Errata