View stunning SlideShares in full-screen with the new iOS app!Introducing SlideShare for AndroidExplore all your favorite topics in the SlideShare appGet the SlideShare app to Save for Later — even offline
View stunning SlideShares in full-screen with the new Android app!View stunning SlideShares in full-screen with the new iOS app!
An Introduction To WordPress Development by John HawkinsMonday, October 15, 12
I’m John I run 9seeds.com / WordPress development I speak at WordCamps nationally I started the Vegas WordPress group (260+) I’ve got 1 wife, 2 kids, 1 cat, 3 dogs, self- diagnosed ADD and OCD. SQUIRREL!Monday, October 15, 12
The Misconception About WordPressMonday, October 15, 12
WordPress is Just For BloggingMonday, October 15, 12
That is... Wrong Not true Complete BS Erroneous False All of the aboveMonday, October 15, 12
What is WordPress A content management system An open source project Created by and for the community Free to use for anything from a personal blog to a Fortune 500 web siteMonday, October 15, 12
.com vs .org .com is a service .org is downloadable provided by a For software you can use Proﬁt company on any server .com doesn’t allow .org allows unlimited install of your own freedom to do as you plugins / themes wish .com is updated for .org requires you you automatically update the software yourselfMonday, October 15, 12
Why I Use WordPress 70,000,000+ sites = big pool of clients Easy to use for end users Helpful community / access to support Can be made to do most anythingMonday, October 15, 12
Let’s Get Started But ﬁrst, a couple rulesMonday, October 15, 12
The First Rule of WordPress DevelopmentMonday, October 15, 12
The First Rule of WordPress Development You do not edit core ﬁlesMonday, October 15, 12The reason for this is that WordPress typically releases 3 major updates per year along with a handful of securityreleases. Any core ﬁles you edit will be overwritten with the standard WP upgrade process
The Second Rule of WordPress DevelopmentMonday, October 15, 12
The Second Rule of WordPress Development You DO NOT edit core ﬁlesMonday, October 15, 12Please see slide 11...
Standard WordPress StructureMonday, October 15, 12Unless you are making a change to submit as a patch to the core team, you should most likely only be messingwith ﬁles in the plugins or themes folders
Let’s Build a Plugin Plugins can be a single ﬁle or multiple directories of ﬁles Create a folder and a php ﬁle with matching name inside the plugins folderMonday, October 15, 12
my-plugin.phpMonday, October 15, 12This information is all you need in order to tell WordPress that this ﬁle is a plugin.
Monday, October 15, 12With that little bit of info, our plugin is ready to be activated. Although it won’t do anything yet.
Add a FilterMonday, October 15, 12Added a ﬁlter which is going to edit the content and run our function in a speciﬁed order
Create a CSS Folder & FileMonday, October 15, 12
Add an ActionMonday, October 15, 12We’ve told WordPress that when it enqueues the rest of the scripts, enqueue ours, too.
Some Plugin Resources Don’t write code that WordPress already handles http://codex.wordpress.org/Function_Reference Know your hooks and ﬁlters http://adambrown.info/p/wp_hooks Check out the WordPress coding Standards http://codex.wordpress.org/WordPress_Coding_StandardsMonday, October 15, 12- Don’t reinvent the wheel- 1600 hooks and ﬁlters- Hooks are actions that ﬁre at speciﬁc spots in the code.- Filters typically modify content before displaying it on screen or writing to the database.
Let’s Build a Theme Like plugins, a theme can be one or many ﬁles Themes add design to your site Themes can also add functionalityMonday, October 15, 12
style.cssMonday, October 15, 12This is the only info you need to tell WordPress about our theme
Monday, October 15, 12With that little bit of info, our theme is ready to be activatedwhat happens if we activate now?
Monday, October 15, 12D’oh! We didn’t add anything to our index ﬁle yet...
index.php Get started by adding the header/footerMonday, October 15, 12
Post Layout, part 1Monday, October 15, 12have_posts() checks page for available contentwhile have_posts will loop through each postthe_title() / the_content()
Post Layout, part 2Monday, October 15, 12This is displayed if no posts were on the page_e() allows for translations
Hey, We Have a Page!Monday, October 15, 12It may be ugly, but you can see the beginnings of our site.
Add Some StyleMonday, October 15, 12Adding the most basic amount of style, and activating our plugin
http://codex.wordpress.org/Template_HierarchyMonday, October 15, 12Knowing what template is being used is VERY important.
Some Theme Resources The WordPress theme community http://make.wordpress.org/themes/ WordPress CSS Coding Standards http://make.wordpress.org/core/handbook/coding-standards/css/Monday, October 15, 12
Save Some Time, Create a Child ThemeMonday, October 15, 12Creating a child theme only needs the Template tagImporting the style sheet is a huge shortcut
Monday, October 15, 12the original twentyten theme with our plugin activated
Monday, October 15, 12The Child theme changes colors, moves menu location, moves sidebar, made it 3 columndoesn’t affect the parent theme at all