Skip to main content

Professional WordPress Plugin Development

Professional WordPress Plugin Development

Brad Williams, Ozh Richard, Justin Tadlock, Joost de Valk (Foreword by)

ISBN: 978-1-118-07532-6

Feb 2011

552 pages

$29.99

Description

Taking WordPress to the next level with advanced plugin development

WordPress is used to create self-hosted blogs and sites, and it's fast becoming the most popular content management system (CMS) on the Web. Now you can extend it for personal, corporate and enterprise use with advanced plugins and this professional development guide. Learn how to create plugins using the WordPress plugin API: utilize hooks, store custom settings, craft translation files, secure your plugins, set custom user roles, integrate widgets, work with JavaScript and AJAX, create custom post types. You'll find a practical, solutions-based approach, lots of helpful examples, and plenty of code you can incorporate!

  • Shows you how to develop advanced plugins for the most popular CMS platform today, WordPress
  • Covers plugin fundamentals, how to create and customize hooks, internationalizing your site with translation files, securing plugins, how to create customer users, and ways to lock down specific areas for use in corporate settings
  • Delves into advanced topics, including creating widgets and metaboxes, debugging, using JavaScript and AJAX, Cron integration, custom post types, short codes, multi site functions, and working with the HTTP API
  • Includes pointers on how to debug, profile and optimize your code, and how to market your custom plugin

Learn advanced plugin techniques and extend WordPress into the corporate environment.

FOREWORD xxi

INTRODUCTION xxiii

CHAPTER 1: AN INTRODUCTION TO PLUGINS 1

What Is a Plugin? 1

Available Plugins 3

Advantages of Plugins 5

Installing and Managing Plugins 7

Summary 10

CHAPTER 2: PLUGIN FOUNDATION 11

Creating a Plugin File 11

Sanity Practices 12

Header Requirements 14

Determining Paths 15

Activate/Deactivate Functions 18

Uninstall Methods 20

Coding Standards 22

Plugin Development Checklist 26

Summary 27

CHAPTER 3: HOOKS 29

Actions 30

Filters 39

Using Hooks from Within a Class 51

Creating Custom Hooks 52

How to Find Hooks 55

Summary 57

CHAPTER 4: INTEGRATING IN WORDPRESS 59

Adding Menus and Submenus 59

Creating Widgets 63

Meta Boxes 79

Keeping It Consistent 90

Summary 96

CHAPTER 5: INTERNATIONALIZATION 97

Internationalization and Localization 97

Creating Translation Files 113

Summary 115

CHAPTER 6: PLUGIN SECURITY 117

Securing Your Plugin 117

User Permissions 118

Nonces 120

Data Validation and Sanitization 127

Formatting SQL Statements 149

Security Good Habits 160

Summary 161

CHAPTER 7: PLUGIN SETTINGS 163

The Options API 163

The Settings API 169

The Transients API 180

Saving Per-User Settings 183

Storing Data in Custom Tables 191

Summary 196

CHAPTER 8: USERS 197

Working with Users 198

Roles and Capabilities 219

Limiting Access 221

Customizing Roles 229

Summary 236

CHAPTER 9: HTTP API 237

HTTP Requests Crash Course 237

WordPress’ HTTP Functions 242

Practice: Reading JSON from a Remote API 255

Practice: Sending Data to a Remote API 259

Practice: Reading Arbitrary Content 262

Make Your Own Plugin Repository 263

Special Case: Fetching Remote Feeds 269

Summary 270

CHAPTER 10: THE SHORTCODE API 271

Creating Shortcodes 271

Shortcode Tips 277

Integrating Google Maps 286

More Shortcode Quick Ideas 295

Summary 297

CHAPTER 11: EXTENDING POSTS: METADATA, CUSTOM POST TYPES, AND TAXONOMIES 299

Creating Custom Post Types 300

Using Custom Post Types 309

Post Metadata 313

Creating Custom Taxonomies 318

Using Custom Taxonomies 324

A Post Type and Taxonomy Plugin 329

Summary 332

CHAPTER 12: JAVASCRIPT AND AJAX IN WORDPRESS 333

jQuery–A Brief Introduction 333

Ajax 337

Adding JavaScript in WordPress 341

Ajax in WordPress 358

Summary 373

CHAPTER 13: CRON 375

What Is Cron? 375

Scheduling Cron Events 376

True Cron 386

Practical Use 386

Summary 401

CHAPTER 14: THE REWRITE API 403

Why Rewrite URLs 403

How WordPress Handles Queries 406

Practical Uses 408

Summary 423

CHAPTER 15: MULTISITE 425

Differences 426

Enabling Multisite in WordPress 427

Multisite Functions 428

Multisite Database Schema 460

Summary 461

CHAPTER 16: DEBUGGING AND OPTIMIZING 463

Supporting Old Versions (Not) 463

Debugging 466

Error Logging 472

Caching 473

Summary 477

CHAPTER 17: MARKETING YOUR PLUGIN 479

Choosing a License for Your Plugin 480

Submitting to WordPress.org 482

Getting Your Plugin Renowned 489

Summary 496

CHAPTER 18: THE DEVELOPER TOOLBOX 497

Core as Reference 497

Codex 501

Tool Web Sites 502

PHPXref 502

Community Resources 503

Tools 507

Summary 509

INDEX 511

ReadMe
Download
Code Download :: Chapter 1
Download
Code Download :: Chapter 2
Download
Code Download :: Chapter 3
Download
Code Download :: Chapter 4
Download
Code Download :: Chapter 5
Download
Code Download :: Chapter 6
Download
Code Download :: Chapter 7
Download
Code Download :: Chapter 8
Download
Code Download :: Chapter 9
Download
Code Download :: Chapter 10
Download
Code Download :: Chapter 11
Download
Code Download :: Chapter 12
Download
Code Download :: Chapter 13
Download
Code Download :: Chapter 14
Download
Code Download :: Chapter 15
Download
Code Download :: Chapter 16
Download
ChapterPageDetailsDatePrint Run
9Error in Text
The tool tip:

"The mu-plugins directory will not read plugins in a subfolder, so all plugins [much] be individual files or must include additional..."

Should be:
"...so all plugins [must] be individual files"
4/14/11