Professional WordPress Design and Development 2nd Edition
Download
Introduction
DEAR READER, Thank you for picking up this book. WordPress is the most popular self-hosted
website software in use today. It is available as an open source project, licensed under the GPL, and
is built largely on top of the MySQL database and PHP programming language. Any server environment
that supports that simple combination can run WordPress, making it remarkably portable
as well as simple to install and operate. You don’t need to be a systems administrator, developer,
HTML expert, or design aesthete to use WordPress.
On the other hand, because WordPress has been developed using a powerful set of Internet standard
platforms, it can be extended and tailored for a wide variety of applications. WordPress is the
publishing mechanism underneath thousands of individual blog voices and the engine that powers
high-volume, high-profile sites such as CNN’s websites and blogs. It was designed for anyone
comfortable navigating a browser, but is accessible to web designers and developers as well. Given
this range of applications and capabilities, it can prove hard to know where to start if you want to
make use of the power of WordPress for your specific purposes. Should you first study the database
models and relationships of content and metadata, or the presentation mechanics that generate the
HTML output?
This book was designed for readers to develop a knowledge of WordPress from the inside out,
focusing on the internal structure and fl ow of the core code as well as the data model on which
that code operates. Knowing how something works often makes you more adept at working with
it, extending it, or fixing it when it breaks. Just as a race car driver benefits from a fundamental
knowledge of combustion engines, aerodynamics, and the mechanics of automobile suspension,
someone driving WordPress through its full dynamic range will be significantly more adept once
acquainted with the underlying software physics.
WHAT THIS BOOK COVERS
This book is divided into three major sections: Chapters 1 through 4 are an overview of the
WordPress system, its major functional elements, and a top-level description of what happens when
a WordPress-generated web page is displayed. Chapters 5 through 9 build on this foundation and
dive into the core of WordPress, describing internal code fl ow and data structures. This middle
section is strongly developer-oriented, and describes how to extend WordPress through plugins
and customize it via themes. The last section, Chapters 10 through 16, combines a developer view
of user experience and optimization with the deployer requirements for performance, security, and
enterprise integration.
HOW THIS BOOK IS STRUCTURED
The following is a detailed chapter-by-chapter overview of what you can expect to fi nd in this book.
Chapter 1, “First Post,” contains a brief summary of the history of the WordPress software core,
explores some popular hosting options, why community matters in a content-centric world, and
concludes with the basics of do-it-yourself WordPress installation and debugging.
Chapter 2, “Code Overview,” starts with the mechanics of downloading the WordPress
distribution and describes its basic contents and fi lesystem layout. A top-to-bottom code fl ow walks
you from an index or specifi c post URL, through the process of selecting posts, assembling content,
and generating the displayed HTML. This chapter is a map for the more detailed code tours in the
developer-focused section.
Chapter 3, “Working with WordPress Locally,” covers the many benefi ts to working with
WordPress on your local computer. This chapter also reviews the various setups for local
development on a Microsoft Windows or Apple OSX computer. Finally you’ll cover how to deploy
your local changes to a remote server using various deployment methods.
Chapter 4, “Tour of the Core,” examines the essential PHP functions comprising the basic
WordPress engine. It serves as an introduction to the developer-focused middle section of the book
and also lays the foundation for the deployment-, integration-, and experience-focused chapters in
the last section. This chapter also covers using the core as a reference guide, and why it is best not to
hack the core code to achieve desired customizations.
Chapter 5, “The Loop,” is the basis for the developer-centric core of this book. The WordPress main
loop drives the functions of creating and storing content in the MySQL database, as well as extracting
appropriate chunks of it to be sorted, decorated, and nested under banners or next to sidebars, in both cases generating something a web browser consumes. This chapter disassembles those
processes of creating, saving, and publishing a new post as well as displaying content that has been
stored in the WordPress MySQL databases. The underlying database functions and the management
of content metadata are covered in more detail to complete a thorough view of WordPress’ internal
operation.
Chapter 6, “Data Management,” is the MySQL-based counterpart to Chapter 5. The core functions
create, update, and manipulate entries in multiple MySQL database tables, and this chapter covers
the database schema, data and metadata taxonomies used, and the basic relations that exist between
WordPress elements. It also includes an overview of the basic query functions used to select and
extract content from MySQL, forming a basis for extensions and custom code that needs to be able
to examine the individual data underlying a WordPress site.
Chapter 7, “Custom Post Types, Custom Taxonomies, and Metadata,” explores the different types
of content and associated data in WordPress. You’ll cover how to register and work with custom
post types for creating custom content in WordPress. Custom taxonomies are also dissected, diving
into the various setups with examples. Finally you’ll cover post metadata, and the proper ways to
store arbitrary data against posts in WordPress.
Chapter 8, “Plugin Development,” starts with the basic plugin architecture and then explores the
hook, action, and fi lter interfaces that integrate new functionality around the WordPress core. This
chapter demonstrates the interposition of functions into the page composition or content management
streams and how to save plugin data. Examples of building a plugin using a simple framework
outline the necessary functionality of any plugin. This chapter also covers creation of widgets,
simpler-to-use plugins that typically add decoration, additional images, or content to a sidebar;
many plugins also have a widget for easier management. Publishing a plugin to the WordPress repository
and pitfalls of plugin confl ict round out the discussion of WordPress’ functional extensions.
Chapter 9, “Theme Development,” is the display and rendering counterpart to Chapter 8. Plugins
add new features and functions to the core, whereas themes, CSS and page templates change the
way that content is shown to readers. Starting with a basic theme, this chapter covers writing a
theme, building custom page templates, menu management, widget areas, post formats, theme
installation, and how thematic elements are used by the functions described in previous chapters.
This chapter ends the deep developer-focused middle section of the book.
Chapter 10, “Multisite,” explores the popular Multisite feature of WordPress. You’ll learn the
advantages of running your own Multisite network, how to properly install Multisite, working in a
network, creating sites and users, managing themes and plugins, and even domain mapping. The
last part of the chapter explores coding for Multisite and the various functions and methods available
for use.
Chapter 11, “Content Aggregation,” looks at WordPress from a services point of view. If a website
represents your public persona or online presence, it has to pull content from a variety of tools and
content sources. This chapter delves into web services interfaces, WordPress APIs, feeds into and out
of WordPress, and making WordPress entries show up in Facebook pages.
Chapter 12, “Crafting the User Experience,” looks at a WordPress installation from the
perspective of a regular or potential reader. Usability, testing, and the ease of fi nding information
within a WordPress website form the basics, with added emphasis on web standards for metadata
and search engine optimization so content can be found through an appropriate Google search.
Whereas Chapter 11 covers pulling external content into your WordPress instance, this chapter
shows how to get your content to show up elsewhere on the Web. Alternatives for adding search
functionality, one of WordPress’ weaknesses, are discussed, along with content accessibility and
delivery to mobile devices.
Chapter 13, “Statistics, Scalability, Security, and Spam,” deals with good and bad popularity.
Keeping a WordPress installation safe from inevitable comment spammers as well as malicious
attackers is a key part of confi guration and management, and this chapter covers the more popular
security and anti-spam plugins and features. Traffi c analysis tools indicate how well certain content
types, functions, ad campaigns, promotions, or links are driving readership and how this informs
traffi c management.
Chapter 14, “WordPress as a Content Management System,” goes beyond blogging to examples
of WordPress as a system for managing the life cycle, integration, and distribution of networked
content.
Chapter 15, “WordPress in the Enterprise,” tackles issues of scale and integration. WordPress
may address defi ciencies in “enterprise scale” content management tools, and building on the
mechanisms covered in Chapter 12, this chapter shows how to use WordPress with a variety of
enterprise facilities ranging from identity management to Microsoft ASP.NET services.
Chapter 16, “WordPress Developer Community,” is an introduction to contributing to
the WordPress ecosystem by working on the core, submitting plugins or themes, adding to the
documentation canon, and assisting other developers. An overview of WordPress sister projects such
as bbPress for forums is provided along with a brief summary of other developer resources and a
glossary of WordPress-context sensitive terms.
Home Web Development Professional WordPress Design and Development 2nd Edition