31,19 €
If you can write WordPress plug-ins, you can make WordPress do just about anything. From making the site easier to administer, to adding the odd tweak or new feature, to completely changing the way your blog works, plug-ins are the method WordPress offers to customize and extend its functionality. This book will show you how to build all sorts of WordPress plug-ins: admin plug-ins, Widgets, plug-ins that alter your post output, present custom "views" of your blog, and more.
WordPress Plug-in Development (Beginner's Guide) focuses on teaching you all aspects of modern WordPress development. The book uses real and published WordPress plug-ins and follows their creation from the idea to the finishing touches, in a series of carefully picked, easy-to-follow tutorials. You will discover how to use the WordPress API in all typical situations, from displaying output on the site in the beginning to turning WordPress into a CMS in the last chapter. In Chapters 2 to 7 you will develop six concrete plug-ins and conquer all aspects of WordPress development.
Each new chapter and each new plug-in introduces different features of WordPress and how to put them to good use, allowing you to gradually advance your knowledge. This book is written as a guide to take your WordPress skills from the very beginning to the level where you are able to completely understand how WordPress works and how you can use it to your advantage.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 270
Veröffentlichungsjahr: 2009
Copyright © 2009 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, Packt Publishing, nor its dealers or distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: February 2009
Production Reference: 2200209
Published by Packt Publishing Ltd.
32 Lincoln Road
Olton
Birmingham, B27 6PA, UK.
ISBN 978-1-847193-59-9
www.packtpub.com
Cover Image by Vinayak Chittar (<[email protected]>)
Author
Vladimir Prelovac
Reviewer
Junal Rahman
Senior Acquisition Editor
David Barnes
Development Editor
Nikhil Bangera
Technical Editor
Mehul Shetty
Copy Editor
Sumathi Sridhar
Indexer
Monica Ajmera
Production Editorial Manager
Abhijeet Deobhakta
Editorial Team Leader
Akshara Aware
Project Team Leader
Lata Basantani
Project Coordinator
Neelkanth Mehta
Proofreader
Lesley Harrison
Production Coordinator
Shantanu Zagade
Cover Work
Shantanu Zagade
Vladimir Prelovac is the author of many popular WordPress plugins and articles about WordPress optimization, security and maintenance. He actively uses WordPress platform as a base for Internet development strategy for small & mid-sized businesses.
For Vladimir, WordPress development is a full time job about which he happily blogs on his web site www.prelovac.com/vladimir.
I'd like to thank my editor Mr. Barnes, for leading me through the book writer's path. Dave, Ervin, and guys at Wordcast, for the professional support they showed in such a lovely way. My family for understanding the long, sleepless nights of writing. Finally, I wish to dedicate this book to my mother, Vera Prelovac (1949-2008), who was and will always be my beacon of light.
Junal Rahman is a Computer Science graduate from the Independent University of Bangladesh. His areas of expertise include programming with the PHP framework and creating Facebook applications. He has worked for several software companies as a Web Application Developer. During his undergraduate studies Junal fell in love with .NET programming, but as soon as he started his internship, he fell in love with PHP. He currently works as a Development Engineer at Trippert Labs. At Trippert, Junal collaboratively works to create Facebook applications. He also maintains a blog that can be found at http://junal.wordpress.com.
I would like to acknowledge my sister Shiuly, follow your dreams
If you can write WordPress plugins, you can make WordPress do just about anything. From making the site easier to administer, to adding the odd tweak or new feature, to completely changing the way your blog works; plugins are the method WordPress offers to customize and extend its functionality. This book will show you how to build all sorts of WordPress plugins: admin plugins, Widgets, plugins that alter your post output, present custom "views" of your blog, and more.
This book focuses on teaching you all aspects of modern WordPress development and usage. The book uses real and published WordPress plugins and follows their creation from the idea to the finishing touches, in a series of carefully picked, easy-to-follow tutorials. You will discover how to use the WordPress API in all typical situations, from displaying output on the site in the beginning to turning WordPress into a CMS in the last chapter. In Chapters 2 to 7, you will develop six concrete plugins and conquer all aspects of WordPress plugin development.
Each new chapter and each new plugin introduces different features of WordPress and how to put them to good use, allowing you to gradually advance your knowledge. This book is written as a guide to take your WordPress skills from the very beginning to the level where you are able to completely understand how WordPress works and how you can use it to your advantage.
This is a Packt Beginners Guide, which means it focuses on practical examples and has a fast-paced but friendly approach, with the opportunity to learn by experimentation and play. Each chapter builds a practical plugin from the ground up using step-by-step instructions. Individual sections show you how to code some functionality into your plugin and follow up with a discussion of concepts.
Chapter 1 teaches the advantages of WordPress development, and what WordPress has to offer to plugin authors.
Chapter 2 creates a working, useful, and attractive WordPress plugin from scratch. It shows how to extract information using the WordPress API and how to use CSS to improve the look of our plugin.
Chapter 3 explores more cool things we can do with WordPress by livening up the default WordPress blogroll. The purpose of the plugin is to display the most recent posts from the sites listed in the blogroll using a nice pop-up window.
Chapter 4 uses the mixed approach, by taking advantage of creative WordPress and JavaScript techniques, in order to create an Ajax powered 'Wall’ for your blog’s sidebar. It introduces quite a few interesting techniques such as Widgets, interacting with the WordPress Database, and Ajax form submission.
Chapter 5 covers the creation of a very sleek and stylish looking WordPress enhancement. The purpose of the Snazzy Archives plugin will be to present your site archives in a unique visual way. It shows how to manipulate the layout of the template using shortcodes and custom templates.
Chapter 6 is all about digging a little deeper into WordPress and hacking the Write Post screen. It shows how to create custom panels in the various sections of the Write Post screen. It teaches how to access the current WordPress rich text editor, tinyMCE, and create a button on its toolbar.
Chapter 7 explores the possibilities of turning WordPress into a Content Management System (CMS), using methods provided to us by WordPress. It shows how to modify the Manage Posts panel to display the information we want. It also covers managing who can use your plugin by looking at the logged in user capabilities.
Chapter 8 covers the additional steps involved in localizing, documenting, publishing, and promoting your plugin. It also covers useful tips and ideas to improve your general WordPress knowledge further.
This book is for programmers working with WordPress, who want to develop custom plugins and to hack the code base. You need to be familiar with the basics of WordPress and PHP programming and believe that code is poetry; this book will handle the rest.
In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.
Code words in text are shown as follows: "Edit the insights.js file and add the functionality to insert the HTML directly into tinyMCE."
A block of code will be set as follows:
When we wish to draw your attention to a particular part of a code block, the relevant lines or items will be made bold:
New terms and important words are introduced in a bold-type font. Words that you see on the screen, in menus or dialog boxes for example, appear in our text like this:
"Go to your WordPress Plugins admin panel."
Warnings or important notes appear in a box like this.
Tips and tricks appear like this.
Feedback from our readers is always welcome. Let us know what you think about this book, what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.
To send us general feedback, simply drop an email to <[email protected]>, making sure to mention the book title in the subject of your message.
If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or email <[email protected]>.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
Visit http://www.packtpub.com/files/code/3599_Code.zip to directly download the example code.
The downloadable files contain instructions on how to use them.
Although we have taken every care to ensure the accuracy of our contents, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in text or code—we would be grateful if you would report this to us. By doing this you can save other readers from frustration, and help to improve subsequent versions of this book. If you find any errata, report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the let us know link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata are added to the list of existing errata. The existing errata can be viewed by selecting your title from http://www.packtpub.com/support.
Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide the location address or website name immediately so we can pursue a remedy.
Please contact us at <[email protected]> with a link to the suspected pirated material.
We appreciate your help in protecting our authors, and our ability to bring you valuable content.
You can contact us at <[email protected]> if you are having a problem with some aspect of the book, and we will do our best to address it.
If you are holding this book in your hands now, you are probably aware—in one way or the other—of the tremendous success WordPress platform has seen over the past few years. It has become the most widespread blogging and publishing platform in the world today.
When I first installed WordPress, I was still looking around for a platform to start my personal site and also for an opportunity to do more online development work.
After seeing the simple installation procedure (which takes just a few minutes), I realized that the guys behind WordPress are on to something big. It has indeed proven to be so, and as the days passed by, I have enjoyed every aspect of WordPress—publishing, social, and development.
And I am thrilled to share these nits and bits of WordPress development information with you, showing you the power and flexibility that allowed WordPress to become so popular.
Thanks to its open source architecture, ease of use, and customization possibilities, WordPress has succeeded in differentiating itself from other weblog publishing platforms and even other open source solutions.
The main WordPress features of interest to developers are:
With such a list, it is no wonder that—every day—more and more private users and companies are turning to WordPress for their publishing needs. This of course presents a fertile ground for WordPress developers to show off their skills.
The opportunity for a WordPress developer in these circumstances becomes obvious.
With such a huge number of sites running it, the market is hungry for WordPress experts, and not just development experts. If you are proficient in the installation and setup of WordPress, you may easily have your hands full of work.
The fact that a number of major sites use WordPress means that there is also an opportunity for highprofile work.
This also means that you can be fairly certain about the future of WordPress. Your investment in time and efforts, first in reading this book, and then in enhancing your development skills, is likely to pay off with WordPress.
With online security becoming a bigger issue each day, it is a relief to see the WordPress development team reacting promptly to newly discovered security issues.
This makes everyone even more comfortable and confident in using WordPress.
With WordPress, the plugin author is allowed total control over every aspect of the site. You are able to completely customize the way the site looks and behaves.
The opportunity is there for everyone—from beginners (developing useful plugins) to professionals (creating total WordPress makeovers such as e-commerce, marketing, or job portal sites—where you can hardly recognize that the site is running a WordPress installation).
SearchEngineOptimization (SEO) is an important aspect of today's Internet presence. Just creating a site is not enough anymore, as there are now hundreds of millions of competing websites out there.
Using a platform such as WordPress will be really valuable, especially in the long term. WordPress has significant built-in SEO features and also most of the other aspects of modern SEO technologies available through custom plugins (and you can always write one to match your needs!)
Becoming proficient in SEO concepts can help you a lot as a WordPress developer, as the need for both WordPress and SEO skills is growing fast.
WordPress is meant for beginners and used by professionals. This mix is rarely seen in any other open source platforms.
After the five minute installation, most users immediately feel comfortable in the WordPress administration panels. Writing a post and organizing categories is as simple as it should be.
The whole WordPress installation consists of putting the files on the server and setting the assigned database, and it is very easy to back up or move it to another server.
WordPress and its plugins can be upgraded with a click of a button; all this makes the job of maintaining a WordPress website (or even several at the same time), a breeze.
If you are a WordPress developer, the chances are that you will have your own hosted WordPress blog. Having a personal blog creates a great opportunity to create many new contacts—both business and friends.
When you release a WordPress plugin, you will meet hundreds of people who are going to use it on their own sites. You will also have people visit you for support, or just to say Thankyou!
With such a huge user base, a well written plugin will probably be downloaded tens of thousands of times.
This will create awareness about you as a plugin author and your site as a probable source for some cool stuff. Having in mind how difficult it is to get noticed on the Internet today, this becomes a very important aspect of plugin development that you get forfree.
Creating fresh, new, and usable plugins can help you go a long way. It has really helped me a lot in my field of work and has created a lot of opportunities–one certainly being, the pleasure of writing this book.
You may sometimes wish to create a plugin just for yourself, to fulfil a specific need that can arise at a given moment. This is how I started writing plugins initially, as I needed certain functionalities that were not available in WordPress at the time.
The term dogfooding describes a dog food company that is ready to eatitsowndogfood. It means the company is confident about its own product and uses it for the purpose it was produced for.
In WordPress' terms, it means that you should always strive to create a plugin that satisfies your needs. On my personal site, I still use almost all of the plugins I created, and I only update them over time, as and when WordPress is updated, or my needs change.
This has a positive side effect of ensuring that your plugins will probably be attractive to many other users as well. Assuming that you are critical about your own work, and your confidence in using your own plugins sends out a clear message on how good they are.
Developing WordPress plugins is not always an easy job. It brings a number of challenges that you will need to overcome.
WordPress uses PHP and provides an API with its own functions. The API has grown over time, and now covers all possible methods of communication between WordPress and the plugin.
This book will cover all the aspects of the API with practical examples, and the development of six concrete plugins (chapters 2-7). Through step-by-step guides to creating these plugins, you will discover how to use API in typical situations, from displaying output on the site in the beginning, to turning WordPress into a CMS at the end.
Each new chapter and each new plugin will introduce different features of WordPress, and how to put them to good use, thereby allowing you to gradually advance your knowledge.
As much as WordPress team takes care of the WordPress core, you need to take care of security in your plugins. Always remember that your plugin is given the ultimate authority on the user's site. This is a great feature that allowed WordPress to become popular; but with that it also carries a great deal of responsibility.
This book will show the methods and functions best suited to the given situations, and underline the security implications. There are not too many issues to worry about, so make sure you remember the implications and best practices and apply them to your plugins.
Once the development work is done and the plugin is finished, a lot of authors face the question: What now? If you plan to release the plugin to the public, there are a few extra steps you need to take care of.
This book will give you practical tips in this area—refer to Chapter 8.
It will cover the process that takes you from the end of the development phase to the first users coming back to you with feedback and questions. I have learned much from my own plugin development experience, and I will also be referencing some of the resources available online .
At the moment, WordPress is translated into more than 50 languages worldwide. The number of users using WordPress in their native language is growing each day, and they usually prefer using plugins that support their own language.
Localization in WordPress is easy, and the best thing is that you will not have to do any translation. There will always be users interested in translating your plugin to their own language and sending you the file back. This is the way it works, and it is mutually beneficial.
Writing documentation is often boring work but I will show you templates which will help you to do it more efficiently and also point out the benefits of writing good documentation.
I will also cover the necessary steps to manage your plugin using SVN (Subversion), and submit it to the WordPress Plugin Repository—the central repository of all WordPress plugins which currently hosts thousands of plugins and has served millions of downloads.
Good documentation goes a long way when it comes to support.
You can expect hundreds of user questions pouring in after you release a plugin. So, making sure that you have a well written documentation will save you a lot of time in answering those questions.
I will also give some practical tips on how to organize your plugin page.
Writing a good plugin that nobody knows about is a fruitless effort.
I will give you tips on how to promote your plugin once it is published. If you have created a really useful plugin, you can expect a snowball effect when users start to write about it on their blogs and tell their friends about it.
This introduction chapter is followed by seven chapters; six of which describe the creation of WordPress plugins and a final chapter dealing with post-development issues:
Various development topics and WordPress specific functions are introduced throughout the development of these plugins, using concrete, step-by-step practical examples.
This is the first plugin we will be developing. This plugin will show a Digg button in your blog posts.
The purpose of this plugin will also be to introduce you to the basic concepts of WordPress plugin development.
We will access some of the basic WordPress API functions, and talk about filters and actions which are the WordPress mechanisms for controlling the workflow of the site.
The second plugin comes from the idea of making the default blogroll look a little bit more exciting.
We will expand our knowledge of WordPress API, but also introduce two very important allies in WordPress plugin development, namely jQuery and Ajax.
jQuery and Ajax technologies help our plugins become more engaging, and we will learn the basic concepts of using them through a series of practical examples.
This chapter is all about WP Wall; a plugin that creates a shoutbox on your blog's sidebar, where users can leave comments and shouts.
The chapter teaches important lessons, including how to create a widget and interact with the WordPress database. It also expands the usage of Ajax to include dynamic interaction with the user.
I will also try to engage you to think about WordPress plugin development in a slightly different way.
If plugins can be classified by beauty, this would be the most beautiful plugin in the book. It will display your blog archives in a way you probably have not seen before.
During the creation of the plugin, we will explore how to interact with posts, create plugin options, and manage them through a settings page in the administration. We will then use all that knowledge to produce a beautiful representation of your blog's archives.
Insights plugin will add to the productivity of the blog owner by offering quick access to common information in the Write Post screen.
In this chapter, we will learn how to change the WordPress Write Post screen and interact with the built-in TinyMCE editor. We will use Ajax to get information delivered directly into our post while we write it!
The final plugin of the book will see us working more closely with the WordPress backend, and explore ways to transform WordPress into a versatile Content Management System (CMS).
We will learn how to customize the administration menus and pages, use custom fields to store additional information, explore user capabilities system, and use localization.
After all the hard work in developing those plugins, comes a chapter dedicated to all the post-development work (after-hour party!).
The purpose of this chapter will be to explain localization, documentation, code management, and plugin promotion. It will also give you some information regarding WordPress MU development. Wordpress MU is a multi user version of WordPress that is becoming more popular each day.
Before we get started, we need to have some tools set up, so let's go through a short check list.
Whatever way you decide to set up your development environment, make sure you are comfortable using it. Plugin development can be a full-time job, so make sure you enjoy it as much as you can!
Obviously, we will need WordPress installed. It is advisable to have a separate version of WordPress for development purposes (that is, do not use your blog as a testing ground; your visitors will not like it very much).
To pre
