WordPress 2.7 Complete
Create your own complete blog or website from scratch with WordPress
April Hodge Silver Hasin Hayder
BIRMINGHAM - MUMBAI
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
WordPress 2.7 Complete
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: May 2009
Production Reference: 2040609
Published by Packt Publishing Ltd. 32 Lincoln Road Olton Birmingham, B27 6PA, UK. ISBN 978-1-847196-56-9 www.packtpub.com
Cover Image by Parag Kadam (
[email protected])
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
Credits Authors April Hodge Silver
Editorial Team Leader Abhijeet Deobhakta
Hasin Hayder Project Team Leader Reviewers
Lata Basantani
Lee Jordan Narayan Bhat Paul Thewlis Acquisition Editor David Barnes Development Editor Ved Prakash Jha Technical Editor Reshma Sundaresan
Project Coordinator Leena Purkait Indexer Rekha Nair Proofreader Sandra Hopper Production Coordinator Shantanu Zagade Cover Work
Copy Editor
Shantanu Zagade
Sneha Kulkarni
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
About the authors April Hodge Silver has been designing and developing new websites from
scratch since 1999, just before her graduation from Columbia University. Early in her career, she worked for several web companies and startups, including DoubleClick and About.com. Since 2004, she has been self-employed through her company Springthistle Design and has worked with a staggering variety of companies, non-profits, and individuals to realize their website dreams. In her professional work, April's focus is always on usability, efficiency, flexibility, clean design, and client happiness. WordPress is the best solution for many of Springthistle's clients, though April also develops custom web applications using PHP and MySQL. You can find out more about April's professional work at http://springthistle.com.
In her free time, April enjoys developing recipes in the kitchen, bicycling, and relaxing with her daughter, dog, and darlin' wife. Of course, I am so grateful to everyone at Packt who worked with me to make this book possible. Also, a huge bunch of thanks to my wife Tessa, who made the connection in the first place and helped me get started in this medium. Finally, thanks go to Ruth and Hazel, who provided guidance on commas.
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
Hasin Hayder graduated in Civil Engineering from the Rajshahi University of
Engineering and Technology (RUET) in Bangladesh. He is a Zend-certified Engineer and expert in developing localized applications. He is currently working as a Technical Director in Trippert Labs and managing the local branch in Bangladesh. Beside his full time job, Hasin writes his blog at http://hasin.wordpress.com, writes article in different websites and maintains his open source framework Orchid at http://orchid.phpxperts.net. Hasin lives in Bangladesh with his wife Ayesha and his son, Afif. First of all, I would like to thank David Barnes, Patricia Weir, Abhijeet Deobhakta, and Nikhil Bangera, without whom the book would have never seen the daylight. After writing for so many sleepless nights, the book is finally over; but I want to thank all those who supported me at that time. My wife Ayesha for storytelling, Little Afif for missing his Papa, the staff of Somewhere In for receiving a sleepy developer in the morning, the staff of Pageflakes for their inspiration, and all the members of my PHP group, phpexperts. I would also like to thank all my family members for their great support during this period. Finally, I dedicate this book to the person who would have been the happiest person to see it; my father, Ali Akbar Mohammad Mohiuddin Hayder (1934-2006).
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
About the reviewers Lee Jordan is a web developer with a large collection of web technology acronyms on her resume that sound like the names of laundry detergents and cause glazed expressions in school children. She designs and maintains internal and external enterprise-level websites and web-based applications as part of a project team for a privately held technical services company. Her work includes proposing, writing, and editing web content and user guides people actually read. She began her career in 1997 as a web designer after graduating from Florida State University with a Bachelor of Fine Arts, where she swears that she missed at least one home football game while in the computer lab. Lee later convinced Seminole Community College to give her a Web Programming degree in 2003 even though her final project was a Java-based application that actually contained a usable help file. Web development topics or whatever she can think of at the time are posted on her blog at http://leejordan.net.
Narayan Bhat's current passion is blogging. You can meet him at his site: The Blog Doctor (http://www.blogdoctor.me). He has reviewed Blogger Beyond the Basics and WordPress for Business Bloggers, both by Packt Publishing.
Paul Thewlis has worked as a web communications professional in the
public and private sectors. He is currently E-Communications Manager for a multinational transport company headquartered in the UK. He began his web career as a Technical Editor, working on web design books for a well-known publisher. He has extensive experience of many content management systems and blogging platforms. He is an expert in the use of social media within corporate communications and blogs about that subject, as well as WordPress and the Web in general at http://blog.paulthewlis.com. Paul is the author of WordPress For Business Bloggers, also by Packt Publishing
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
Table of Contents Preface Chapter 1: Introduction to WordPress What is a blog? Common terms Post Categories and tags Comments Permalinks Theme RSS Page What is WordPress? Why choose WordPress? A long time in refining Active in development Large community of contributors Amazingly extendable Detailed feature list Online WordPress resources WordPress news The Codex Theme and plugin directories WordPress.com Summary
1 7
7 8 8 8 8 9 9 9 10 10 10 10 10 11 11 11 12 12 12 13 14 14
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
Table of Contents
Chapter 2: Getting Started
Where to build your WordPress website Building on WordPress.com Installing WordPress manually Preparing the environment Downloading WordPress Uploading the files Installing WordPress
Upgrading WordPress from older installations The WP Admin panel Changing the password Changing general blog information Your first post Your first comment Retrieving a lost password Summary
Chapter 3: Blogging Your Heart Out Posting on your blog Adding a simple post Common post options
Categories and tags Adding an image to a post Using the Visual editor versus the HTML editor Drafts, timestamps, and managing posts
15
16 17 20
20 21 22 24
29 30 34 35 36 38 39 39
41
41 41 45
45 48 51 52
Advanced post options
54
Additional writing options
59
Excerpt Trackbacks Discussion Custom Fields Password and private protection Post slug
54 55 56 57 58 59
Press This Posting via email
Discussion on your blog—comments Adding a comment Discussion settings
Submission, notification, and moderation settings When to moderate or blacklist a comment Avatar display settings
Moderating comments How to eliminate comment spam Getting a WordPress.com API key Activating Akismet
59 61
61 62 62
63 64 66
67 69
70 70
[ ii ]
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
Table of Contents
Adding and managing categories Summary
Chapter 4: Pages, Images, Plugins, and More Pages Adding a page Managing pages Links Adding a new link Managing links and categories Media library Adding an image gallery Choosing a post or page Uploading images Tweaking your gallery Adding plugins Finding your plugin Downloading the plugin Uploading and activating the plugin Configuring and/or implementing—if necessary Auto-installation Summary
Chapter 5: Choosing and Installing Themes Finding themes WordPress Theme Directory Top WP themes Template Monster Finding more themes Factors to consider when choosing a theme Installing and changing themes What makes a theme? Downloading and extracting Uploading the theme Previewing and activating Using widgets Enabling basic widgets Multiple sidebars Adding new widgets Summary
72 73
75
75 76 78 79 79 82 83 85 86 86 89 92 92 92 93 95 97 97
99
100 100 103 104 105 105 105 106 106 107 109 111 111 115 116 116
[ iii ]
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
Table of Contents
Chapter 6: Developing Your Own Theme
Setting up your design Designing your theme to be WordPress-friendly Converting your design to code Examining the HTML structure Examining the CSS
117
117 118 120
120 123
Converting your build into a theme Creating the theme folder Adding WordPress content
128 128 133
Main column—the loop Creating templates within your theme Understanding the WordPress theme Breaking it up
138 142 143 143
Archive template Single template Page template Other WordPress templates Creating and using a custom template Making your theme widget-friendly Making sure your sidebar is one big
tag Adding functions.php Adding conditional code to sidebar Adding some widgets Further widgetizing options Sharing your theme Summary
147 149 151 152 153 156 156 157 158 158 159 160 160
The tag The header and footer The sidebar
header.php footer.php sidebar.php Your four template files
Chapter 7: Feeds and Podcasting
Feed basics Feed readers Your built-in WordPress feeds Adding feed links Feeds for the whole website Feeds for categories Feeds for post comments Tracking subscribers with FeedBurner
133 134 136
143 144 145 145
161
161 162 163 164 164 166 167 168
[ iv ]
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
Table of Contents Create FeedBurner account FeedSmith plugin
Aggregating feeds Displaying an external feed in the sidebar Displaying an external feed in a page Other useful plugins for syndication Podcasting How to podcast? Record yourself Make a post
Dedicated podcasting Podcasting plugins
168 169
170 171 172 175 176 177
177 178
179 180
PodPress Podcasting iPodCatter
Using archive.org to host audio files for free Summary
Chapter 8: Developing Plugins and Widgets Plugins Plugin code requirements Basic plugin—adding link icons
Naming and organizing the plugin files Writing the plugin's core functions Adding hooks to the plugin Trying out the plugin
180 181 181
181 182
183
183 184 184
185 186 187 190
Adding an admin page
191
A plugin with DB access
196
Widgets Top searched words widget
201 201
Combining the widget and the plugin Summary
208 208
Adding management page functions Modifying the regex() function Adding hooks Trying out the plugin
192 194 195 195
Getting the plugin to talk to the database Adding management page functions Adding hooks Trying out the plugin
197 198 198 199
Naming the widget Initializing the widget Adding the widget's functions Adding the widget hook Trying out the widget
202 202 203 206 206
[]
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
Table of Contents
Chapter 9: Community Blogging
209
Chapter 10: WordPress as a CMS
223
Concerns for a multiuser blog Users roles and abilities Administrator Editor Author Contributor Subscriber Managing users Useful plugins Role Manager Summary
Designing your theme Approach—the flexible WP Post Getting ready Using a simple version of the theme Inputting all content Product pages Main products page template Product category page template Single product page template Adding custom variables to the products Add a custom field to a post Displaying a custom field in the template
209 210 210 210 212 213 213 213 218 218 221
223 225 225 225 226 229 230 232 234 236
237 238
The home page Setting up the home page Inserting the news items Inserting the two blurbs
239 240 241 243
Customizing the news blog News category page Single news item page Summary
246 246 248 250
Using posts—again! Using the Text Snippets plugin
243 244
Chapter 11: Administrator's Reference System requirements The importance of backing up Easy, quick, frequent content backups Backing up everything Verifying your backups
251
251 252 252 252 253
[ vi ]
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
Table of Contents
A closer look at upgrading WordPress Backing up your WordPress files Deactivating all your plugins Downloading and extracting WordPress Deleting old files Uploading the new files Running the WordPress upgrade program Updating permalinks and .htaccess Installing updated plugins and themes Migrating or restoring a WordPress site Setting file permissions What are file permissions? How to set permissions Troubleshooting Troubleshooting during installation Headers already sent Page comes with only PHP code Cannot connect to MySQL database
Basic troubleshooting
253 254 254 255 255 256 256 256 256 257 258 258 260 260 260
260 261 261
261
Cannot see posts Making a blog totally private I don't receive the emailed passwords
Tips for theme development Template tags Class styles generated by WordPress Summary
Index
262 262 263
263 264 266 267
269
[ vii ]
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
Preface Using WordPress, you can easily create dynamic blogs and websites with great content and many outstanding features. It is an ideal tool for developing blogs and though it is chiefly used for blogging, it can also be used as a complete CMS for a regular website with very little effort. You can customize the features, incorporate your own design, and even write your own plugins with ease. Its versatility and ease of use has attracted a large, enthusiastic, and helpful community of users. Although it is easy to get started with WordPress, its full power is not immediately obvious. If you want to create a powerful, fully featured blog or non-blog website in no time, this book is for you. This book will help you learn everything WordPress has to offer from the ground up, so you can build your complete website. You will see many of WordPress's hidden powers that will help you build a fully functioning website.
What this book covers
Chapter 1—Introduction to WordPress introduces everything about blogging, including what a blog is, the common terms used in blogging and what they mean, what WordPress has to offer to a blogger, and why to choose it. Chapter 2—Getting Started explains the choices of where you can build your WordPress website, upgrading from an older version of WordPress, and getting familiar with the WordPress Administration Panel. Chapter 3—Blogging Your Heart Out covers the complete process of creating new posts for your blog, including applying categories and tags to your post, using the rich text editor, and controlling the timestamp. It also includes more advanced options such as including excerpt and trackbacks. This chapter also covers controlling commenting and discussion on your blog, as well as keeping out comment spam.
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
Preface
Chapter 4—Pages, Images, Plugins and More... explains that blog posts aren't the only content in your blog. You also can control pages of static information, upload and manage images on your site, keep a list of bookmarked links, and add plugins. Chapter 5—Choosing and Installing Themes covers how to find and use existing themes from a variety of reliable websites, how to choose which theme is right for your website or blog, and the process of installing and using your new theme. This chapter also covers enabling and using widgets in your theme. Chapter 6—Developing Your Own Theme covers the process of creating your own theme from soup to nuts. This includes setting up your design to accommodate your blogging goals, converting your initial build into an authentic WordPress theme, creating templates within your theme to serve different purposes for your blog, making your theme widget-friendly, and sharing your theme with the WordPress community. Chapter 7—Feeds and Podcasting explains what feeds are and how to add them to your WordPress website, tracking subscribers to your blog, and aggregating feeds from other sources on your blog. This chapter also covers using your WordPress website to create a podcast. (It's easy!) Chapter 8—Developing Plugins and Widgets is for the more advanced user. This chapter shows you how to create plugins and widgets that will work with any installation of WordPress. It includes step-by-step instructions so you don't get lost along the way. Chapter 9—Community Blogging covers managing and handling a multiuser blog, including a detailed outline of the roles and capabilities included in WordPress. Chapter 10—WordPress as a CMS covers from start to finish how to use WordPress to create a non-blog website. This chapter includes explanations of designing your theme, setting it up, creating custom pages that display post content in non-blog ways, customizing the home page to contain dynamic content, and creating a news page. Chapter11—Administrator's Reference covers all of the basic things a WordPress administrator needs to know from system requirements to detailed step-by-step instructions on installing WordPress, moving your WordPress website from one place to another, backing up, common template tags, and basic troubleshooting.
[]
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
Preface
What you need for this book
The minimum system requirement for WordPress is a web server with the following software installed: • •
PHP Version 4.3 or greater MySQL Version 4.0 or greater
Who this book is for
This book is a guide to WordPress for both beginners and progressive learners. It's for people who are new to blogging and want to create their own blogs in a simple and straightforward manner, and it's also for those who want to learn how to customize and expand the capabilities of a WordPress website. It does not require any detailed knowledge of programming or web development, and any IT-confident user will be able to use the book to produce an impressive blog.
Conventions
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: "...you can add the above text anywhere in single.php so long as it is inside the if and while loops of the loop." A block of code will be set as follows: function modify_menu_for_supportedtypes() { add_management_page( 'Document Types', // Page 'Document Types', // Menu title 7, // What level of user __FILE__, //File to open 'supportedtypes_options' //Function to call ); }
[]
This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423
Preface
When we wish to draw your attention to a particular part of a code block, the relevant lines or items will be shown in bold: